diff --git a/IRC.Core.SCP/Program.cs b/IRC.Core.SCP/Program.cs
index 39a3ddfca..e550314dd 100644
--- a/IRC.Core.SCP/Program.cs
+++ b/IRC.Core.SCP/Program.cs
@@ -82,7 +82,6 @@ builder.Services.AddControllers(options =>
     .AddNewtonsoftJsonSetup(builder.Services); // NewtonsoftJson 序列化  处理
 
 
-builder.Services.AddOptions().Configure<AliyunOSSOptions>(_configuration.GetSection("AliyunOSS"));
 builder.Services.AddOptions().Configure<ObjectStoreServiceOptions>(_configuration.GetSection("ObjectStoreService"));
 builder.Services.AddOptions().Configure<DicomSCPServiceOption>(_configuration.GetSection("DicomSCPServiceConfig"));
 
diff --git a/IRC.Core.SCP/Service/DicomArchiveService.cs b/IRC.Core.SCP/Service/DicomArchiveService.cs
index 3a6de7459..9d4bc55dc 100644
--- a/IRC.Core.SCP/Service/DicomArchiveService.cs
+++ b/IRC.Core.SCP/Service/DicomArchiveService.cs
@@ -82,7 +82,7 @@ namespace IRaCIS.Core.SCP.Service
                 DateTime? studyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyDate, string.Empty) == string.Empty ? null : dataset.GetSingleValue<DateTime>(DicomTag.StudyDate).Add(dataset.GetSingleValueOrDefault(DicomTag.StudyTime, string.Empty) == string.Empty ? TimeSpan.Zero : dataset.GetSingleValue<DateTime>(DicomTag.StudyTime).TimeOfDay);
 
                 //先传输了修改了患者编号的,又传输了没有修改患者编号的,导致后传输的没有修改患者编号的下面的检查为0
-                if (findPatient == null && findStudy==null)
+                if (findPatient == null && findStudy == null)
                 {
                     isPatientNeedAdd = true;
 
@@ -279,13 +279,14 @@ namespace IRaCIS.Core.SCP.Service
                 {
                     await _seriesRepository.AddAsync(findSerice);
                 }
+
                 if (isInstanceNeedAdd)
                 {
                     await _instanceRepository.AddAsync(findInstance);
                 }
                 else
                 {
-                    await _instanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == instanceId, u => new SCPInstance() { Path = fileRelativePath });
+                    await _instanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == instanceId, u => new SCPInstance() { Path = fileRelativePath, FileSize = fileSize });
                 }
 
                 await _studyRepository.SaveChangesAsync();
diff --git a/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json b/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json
deleted file mode 100644
index 9d7cf60ac..000000000
--- a/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AliyunOSS",
-    "AliyunOSS": {
-      "RegionId": "cn-shanghai",
-      "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
-      "EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
-      "AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
-      "AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
-      "RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
-      "BucketName": "zy-irc-store",
-      "ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
-      "Region": "oss-cn-shanghai",
-      "DurationSeconds": 7200
-    }
-  },
-
-  "ConnectionStrings": {
-    "RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
-    "Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
-  },
-
-  "DicomSCPServiceConfig": {
-    "CalledAEList": [
-      "STORESCP"
-    ],
-    "ServerPort": 11112
-  }
-
-}
diff --git a/IRC.Core.SCP/appsettings.Test_HIR_SCP.json b/IRC.Core.SCP/appsettings.Test_HIR_SCP.json
index af5c8be23..787c22596 100644
--- a/IRC.Core.SCP/appsettings.Test_HIR_SCP.json
+++ b/IRC.Core.SCP/appsettings.Test_HIR_SCP.json
@@ -23,30 +23,6 @@
     "RemoteNew": "Server=106.14.89.110,1435;Database=Test_HIR_New;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
     "Hangfire": "Server=106.14.89.110,1435;Database=Test_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
   },
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": false,
-
-    "OpenSignDocumentBeforeWork": false,
-
-    "OpenTrialRelationDelete": true,
-
-    "OpenLoginLimit": false,
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 30
-
-  },
-
-  "SystemEmailSendConfig": {
-    "Port": 465,
-    "Host": "smtp.qiye.aliyun.com",
-    "FromEmail": "test-study@extimaging.com",
-    "FromName": "Test_Study",
-    "AuthorizationCode": "zhanying123",
-
-    "SiteUrl": "http://study.test.extimaging.com/login"
-  },
   "DicomSCPServiceConfig": {
     "CalledAEList": [
       "STORESCP",
diff --git a/IRC.Core.SCP/appsettings.US_Prod_SCP.json b/IRC.Core.SCP/appsettings.US_Prod_SCP.json
deleted file mode 100644
index 885e1ed84..000000000
--- a/IRC.Core.SCP/appsettings.US_Prod_SCP.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AWS",
-    "AWS": {
-      "Region": "us-east-1",
-      "EndPoint": "s3.us-east-1.amazonaws.com",
-      "UseSSL": true,
-      "RoleArn": "arn:aws:iam::471112624751:role/lili_s3_access",
-      "AccessKeyId": "AKIAW3MEAFJXZ2TZK7GM",
-      "SecretAccessKey": "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",
-      "BucketName": "ei-med-s3-lili-store",
-      "ViewEndpoint": "https://ei-med-s3-lili-store.s3.amazonaws.com",
-      "DurationSeconds": 7200
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=us-prod-mssql-service,1433;Database=US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=us-prod-mssql-service,1433;Database=US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-  "DicomSCPServiceConfig": {
-    "CalledAEList": [
-      "STORESCP"
-    ],
-    "ServerPort": 11112
-  }
-
-}
diff --git a/IRC.Core.SCP/appsettings.US_Uat_SCP.json b/IRC.Core.SCP/appsettings.US_Uat_SCP.json
deleted file mode 100644
index 28a51b21f..000000000
--- a/IRC.Core.SCP/appsettings.US_Uat_SCP.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AWS",
-    "AWS": {
-      "Region": "us-east-1",
-      "EndPoint": "s3.us-east-1.amazonaws.com",
-      "UseSSL": true,
-      "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access",
-      "AccessKeyId": "AKIAW3MEAFJX7IPXISP4",
-      "SecretAccessKey": "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",
-      "BucketName": "ei-med-s3-lili-uat-store",
-      "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com/",
-      "DurationSeconds": 7200
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=us-mssql-service,1433;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=us-mssql-service,1433;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-  "DicomSCPServiceConfig": {
-    "CalledAEList": [
-      "STORESCP"
-    ],
-    "ServerPort": 11112
-  }
-
-}
diff --git a/IRC.Core.SCP/appsettings.Uat_HIR_SCP.json b/IRC.Core.SCP/appsettings.Uat_HIR_SCP.json
new file mode 100644
index 000000000..0d2d065d5
--- /dev/null
+++ b/IRC.Core.SCP/appsettings.Uat_HIR_SCP.json
@@ -0,0 +1,37 @@
+{
+  "Logging": {
+    "LogLevel": {
+      "Default": "Information",
+      "Microsoft": "Warning",
+      "Microsoft.Hosting.Lifetime": "Information"
+    }
+  },
+  "ObjectStoreService": {
+    "ObjectStoreUse": "MinIO",
+    "MinIO": {
+      "EndPoint": "101.132.253.119",
+      "Port": "9001",
+      "UseSSL": false,
+      "AccessKeyId": "L6owzRVeDJJw3PcRmK2c",
+      "SecretAccessKey": "2XvFDYSH7EyHQNtpDCgk4efgdsdarQmRKgx1LlOI",
+      "BucketName": "hir-uat",
+      "ViewEndpoint": "http://101.132.253.119:9001/hir-uat/"
+    }
+  },
+
+  "ConnectionStrings": {
+    "RemoteNew": "Server=101.132.253.119,1435;Database=Uat_HIR;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
+    "Hangfire": "Server=101.132.253.119,1435;Database=Uat_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
+  },
+
+
+  "DicomSCPServiceConfig": {
+    "CalledAEList": [
+      "STORESCP",
+      "Value1",
+      "Value2",
+      "Value3"
+    ],
+    "ServerPort": 11112
+  }
+}
diff --git a/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json b/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json
deleted file mode 100644
index 2d2fa6c9e..000000000
--- a/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AliyunOSS",
-    "AliyunOSS": {
-      "RegionId": "cn-shanghai",
-      "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
-      "EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
-      "AccessKeyId": "LTAI5tRRZehUp2V9pyTPtAJm",
-      "AccessKeySecret": "FLizxkHsMm4CGYHtkV8E3PNJJZU7oV",
-      "RoleArn": "acs:ram::1899121822495495:role/dev-oss-access",
-      "BucketName": "zy-irc-uat-store",
-      "ViewEndpoint": "https://zy-irc-uat-store.oss-cn-shanghai.aliyuncs.com",
-      "Region": "oss-cn-shanghai",
-      "DurationSeconds": 7200
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=47.117.164.182,1434;Database=Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=47.117.164.182,1434;Database=Uat_IRC.Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-  "DicomSCPServiceConfig": {
-    "CalledAEList": [
-      "STORESCP"
-    ],
-    "ServerPort": 11112
-  }
-
-}
diff --git a/IRaCIS.Core.API/appsettings.Event_IRC.json b/IRaCIS.Core.API/appsettings.Event_IRC.json
deleted file mode 100644
index a5e5925ca..000000000
--- a/IRaCIS.Core.API/appsettings.Event_IRC.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=47.117.164.182,1434;Database=Event_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=47.117.164.182,1434;Database=Event_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AliyunOSS",
-    "AliyunOSS": {
-      "RegionId": "cn-shanghai",
-      "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
-      "EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
-      "AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
-      "AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
-      "RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
-      "BucketName": "zy-irc-store",
-      "ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
-      "Region": "oss-cn-shanghai",
-      "DurationSeconds": 7200
-    },
-    "MinIO": {
-      "endpoint": "http://192.168.3.68",
-      "port": "8001",
-      "useSSL": false,
-      "accessKey": "IDFkwEpWej0b4DtiuThL",
-      "secretKey": "Lhuu83yMhVwu7c1SnjvGY6lq74jzpYqifK6Qtj4h",
-      "bucketName": "test"
-    }
-  },
-
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": true,
-
-    "OpenSignDocumentBeforeWork": true,
-
-    "OpenLoginLimit": true,
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 30,
-    "AutoLoginOutMinutes": 60,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90
-  },
-  "SystemEmailSendConfig": {
-    "Port": 465,
-    "Host": "smtp.qiye.aliyun.com",
-    "FromEmail": "uat@extimaging.com",
-    "FromName": "UAT_IRC",
-    "AuthorizationCode": "SHzyyl2021",
-    "SiteUrl": "http://irc.event.extimaging.com/login",
-    "CompanyName": "Extensive Imaging",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Extensive Imaging",
-    "CompanyShortNameCN": "展影医疗",
-    "IsEnv_US": false
-  }
-
-
-}
diff --git a/IRaCIS.Core.API/appsettings.Prod_IRC.json b/IRaCIS.Core.API/appsettings.Prod_IRC.json
deleted file mode 100644
index 9c63cd9b1..000000000
--- a/IRaCIS.Core.API/appsettings.Prod_IRC.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    //"RemoteNew": "Server=101.132.193.237,1434;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
-    //"Hangfire": "Server=101.132.193.237,1434;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
-    "RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
-    "Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
-  },
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AliyunOSS",
-    "AliyunOSS": {
-      "RegionId": "cn-shanghai",
-      "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
-      "EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
-      "AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
-      "AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
-      "RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
-      "BucketName": "zy-irc-store",
-      "ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
-      "Region": "oss-cn-shanghai",
-      "DurationSeconds": 7200
-    },
-    "MinIO": {
-      "endpoint": "http://192.168.3.68",
-      "port": "8001",
-      "useSSL": false,
-      "accessKey": "IDFkwEpWej0b4DtiuThL",
-      "secretKey": "Lhuu83yMhVwu7c1SnjvGY6lq74jzpYqifK6Qtj4h",
-      "bucketName": "test"
-    }
-  },
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": true,
-    "OpenSignDocumentBeforeWork": true,
-
-    "OpenLoginLimit": true,
-    "LoginMaxFailCount": 5,
-    "LoginFailLockMinutes": 30,
-
-    "AutoLoginOutMinutes": 360,
-
-    "OpenLoginMFA": false,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90
-  },
-
-  "SystemEmailSendConfig": {
-    "Port": 465,
-    "Host": "smtp.qiye.aliyun.com",
-    "FromEmail": "IRC@extimaging.com",
-    "FromName": "IRC",
-    "AuthorizationCode": "ExtImg@2022",
-    "SiteUrl": "http://irc.extimaging.com/login",
-    "OrganizationName": "Extlmaging",
-    "OrganizationNameCN": "Extlmaging",
-    "CompanyName": "Extensive Imaging",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Extensive Imaging",
-    "CompanyShortNameCN": "展影医疗",
-    "IsEnv_US": false,
-    "IsOpenErrorNoticeEmail": true,
-    "ErrorNoticeEmailList": [ "872297557@qq.com" ]
-  },
-  "SystemPacsConfig": {
-    "Port": "11113",
-    "IP": "101.132.193.237"
-  }
-
-}
diff --git a/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json b/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json
deleted file mode 100644
index 4d17342dc..000000000
--- a/IRaCIS.Core.API/appsettings.Test_IRC_PGSQL.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    "Db_Type": "pgsql",
-    "RemoteNew": "Host=106.14.89.110;Port=5432;Username=sa;Password=pgsql_pwd;Database=Test2_PG",
-    "Hangfire": "Server=106.14.89.110,1435;Database=Test_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-
-  "ObjectStoreService": {
-
-    "ObjectStoreUse": "AliyunOSS",
-
-    "AliyunOSS": {
-      "regionId": "cn-shanghai",
-      "internalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
-      "endPoint": "https://oss-cn-shanghai.aliyuncs.com",
-      "accessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ",
-      "accessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio",
-      "bucketName": "zy-irc-test-store",
-      "roleArn": "acs:ram::1899121822495495:role/oss-upload",
-      "viewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com",
-      "region": "oss-cn-shanghai"
-    },
-    "MinIO": {
-      "endPoint": "hir-oss.test.extimaging.com",
-      "port": "443",
-      "useSSL": true,
-      "accessKey": "fbStsVYCIPKHQneeqMwD",
-      "secretKey": "TzgvyA3zGXMUnpilJNUlyMYHfosl1hBMl6lxPmjy",
-      "bucketName": "irc-test",
-      "viewEndpoint": "https://hir-oss.test.extimaging.com/irc-test"
-    },
-    "AWS": {
-      "endPoint": "s3.us-east-1.amazonaws.com",
-      "useSSL": true,
-      "accessKey": "AKIAZQ3DRSOHFPJJ6FEU",
-      "secretKey": "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",
-      "bucketName": "ei-irc-test-store",
-      "viewEndpoint": "https://ei-irc-test-store.s3.amazonaws.com/"
-    }
-  },
-
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": false,
-
-    "OpenSignDocumentBeforeWork": false,
-
-    "OpenTrialRelationDelete": true,
-
-    "OpenLoginLimit": false,
-
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 1,
-
-    "AutoLoginOutMinutes": 1,
-
-    "OpenLoginMFA": false,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90
-  },
-
-  "SystemEmailSendConfig": {
-    "Port": 465,
-    "Host": "smtp.qiye.aliyun.com",
-    "FromEmail": "test@extimaging.com",
-    "FromName": "Test_IRC",
-    "AuthorizationCode": "SHzyyl2021",
-    "SiteUrl": "http://irc.test.extimaging.com/login",
-
-    "OrganizationName": "Extlmaging",
-    "OrganizationNameCN": "Extlmaging",
-    "CompanyName": "Extensive Imaging",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Extensive Imaging",
-    "CompanyShortNameCN": "展影医疗"
-  },
-
-  "SystemPacsConfig": {
-    "Port": "11113",
-    "IP": "106.14.89.110"
-  }
-}
diff --git a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json
deleted file mode 100644
index db7dbebd0..000000000
--- a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=us-prod-mssql-service,1433;Database=US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=us-prod-mssql-service,1433;Database=US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-    //"RemoteNew": "Server=44.210.231.169,1435;Database=US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    //"Hangfire": "Server=44.210.231.169,1435;Database=US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-  },
-
-  "ObjectStoreService": {
-    "ObjectStoreUse": "AWS",
-    "MinIO": {
-      "endPoint": "44.210.231.169",
-      "port": "9001",
-      "useSSL": false,
-      "accessKey": "e9bT1isTOqSAUxb6wd4n",
-      "secretKey": "b5TaDzNdQCBtCvfm8eZ3dR6yY7tfZu2JYze2Po1i",
-      "bucketName": "prod-irc-us",
-      "viewEndpoint": "http://44.210.231.169:9001/prod-irc-us/"
-    },
-
-    "AWS": {
-      "Region": "us-east-1",
-      "EndPoint": "s3.us-east-1.amazonaws.com",
-      "UseSSL": true,
-      "RoleArn": "arn:aws:iam::471112624751:role/lili_s3_access",
-      "AccessKeyId": "AKIAW3MEAFJXZ2TZK7GM",
-      "SecretAccessKey": "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",
-      "BucketName": "ei-med-s3-lili-store",
-      "ViewEndpoint": "https://ei-med-s3-lili-store.s3.amazonaws.com",
-      "DurationSeconds": 7200
-    }
-  },
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": false,
-
-    "OpenSignDocumentBeforeWork": false,
-
-    "OpenTrialRelationDelete": true,
-
-    "OpenLoginLimit": false,
-
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 30,
-    "AutoLoginOutMinutes": 60,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90
-  },
-
-  "SystemEmailSendConfig": {
-    "Port": 587,
-    "Host": "smtp-mail.outlook.com",
-    "FromEmail": "donotreply@elevateimaging.ai",
-    "FromName": "LiLi",
-    "AuthorizationCode": "Q#669869497420ul",
-
-    "OrganizationName": "Elevate Imaging",
-    "OrganizationNameCN": "Elevate Imaging",
-    "CompanyName": "Elevate Imaging Inc.",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Elevate Imaging",
-    "CompanyShortNameCN": "展影医疗",
-    "SiteUrl": "https://lili.elevateimaging.ai/login",
-    "IsEnv_US": true,
-    "IsOpenErrorNoticeEmail": true,
-    "ErrorNoticeEmailList": [ "872297557@qq.com" ]
-  },
-
-  "SystemPacsConfig": {
-    "Port": "104",
-    "IP": "44.210.231.169"
-  }
-
-}
diff --git a/IRaCIS.Core.API/appsettings.US_Test_IRC.json b/IRaCIS.Core.API/appsettings.US_Test_IRC.json
deleted file mode 100644
index 717c771f7..000000000
--- a/IRaCIS.Core.API/appsettings.US_Test_IRC.json
+++ /dev/null
@@ -1,95 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=106.14.89.110,1435;Database=Test_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=106.14.89.110,1435;Database=Test_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-
-  "ObjectStoreService": {
-
-    "ObjectStoreUse": "AWS",
-    "MinIO": {
-      //"endPoint": "hir-oss.uat.extimaging.com",
-      //"port": "443",
-      //"useSSL": true,
-      //"viewEndpoint": "https://hir-oss.uat.extimaging.com/hir-uat",
-
-      "endPoint": "47.117.164.182",
-      "port": "9001",
-      "useSSL": false,
-      "viewEndpoint": "http://47.117.164.182:9001/test-irc-us",
-
-      "accessKey": "b9Ul0e98xPzt6PwRXA1Q",
-      "secretKey": "DzMaU2L4OXl90uytwOmDXF2encN0Jf4Nxu2XkYqQ",
-      "bucketName": "test-irc-us"
-
-    },
-
-    "AWS": {
-      "Region": "us-east-1",
-      "EndPoint": "s3.us-east-1.amazonaws.com",
-      "UseSSL": true,
-      "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access",
-      "AccessKeyId": "AKIAW3MEAFJX7IPXISP4",
-      "SecretAccessKey": "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",
-      "BucketName": "ei-med-s3-lili-uat-store",
-      "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com",
-      "DurationSeconds": 7200
-    }
-  },
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": true,
-
-    "OpenSignDocumentBeforeWork": true,
-
-    "OpenTrialRelationDelete": true,
-
-    "OpenLoginLimit": true,
-
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 30,
-    "AutoLoginOutMinutes": 60,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90,
-
-    "OpenLoginMFA": true
-  },
-
-  "SystemEmailSendConfig": {
-    "Port": 587,
-    "Host": "smtp-mail.outlook.com",
-    "FromEmail": "donotreply@elevateimaging.ai",
-    "FromName": "LiLi",
-    "AuthorizationCode": "Q#669869497420ul",
-
-    "OrganizationName": "Elevate Imaging",
-    "OrganizationNameCN": "Elevate Imaging",
-    "CompanyName": "Elevate Imaging Inc.",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Elevate Imaging",
-    "CompanyShortNameCN": "展影医疗",
-    "SiteUrl": "https://lili.test.elevateimaging.ai/login",
-    "IsEnv_US": true,
-    "IsOpenErrorNoticeEmail": false,
-    "ErrorNoticeEmailList": [ "872297557@qq.com" ]
-  },
-
-  "SystemPacsConfig": {
-    "Port": "104",
-    "IP": "3.226.182.187"
-  }
-
-}
diff --git a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json
deleted file mode 100644
index 51a821e9b..000000000
--- a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json
+++ /dev/null
@@ -1,99 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    //"RemoteNew": "Server=us-mssql-service,1433;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    //"Hangfire": "Server=us-mssql-service,1433;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-
-    "RemoteNew": "Server=3.226.182.187,1435;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=3.226.182.187,1435;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-
-  "ObjectStoreService": {
-
-    "ObjectStoreUse": "AWS",
-
-    "MinIO": {
-      //"endPoint": "hir-minio.uat.elevateimaging.ai",
-      //"port": "443",
-      //"useSSL": true,
-      //"viewEndpoint": "https://hir-minio.uat.elevateimaging.ai/uat-irc-us",
-
-      "endPoint": "3.226.182.187",
-      "port": "9001",
-      "useSSL": false,
-      "viewEndpoint": "http://44.218.11.19:9001/uat-irc-us",
-
-      "accessKey": "lH8DkKskLuDqPaiubuSQ",
-      "secretKey": "pdPdicvvLeH7xAC5yFUrI7odMyBfOXxvVWMvKYV4",
-      "bucketName": "uat-irc-us"
-
-    },
-
-    "AWS": {
-      "Region": "us-east-1",
-      "EndPoint": "s3.us-east-1.amazonaws.com",
-      "UseSSL": true,
-      "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access",
-      "AccessKeyId": "AKIAW3MEAFJX7IPXISP4",
-      "SecretAccessKey": "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",
-      "BucketName": "ei-med-s3-lili-uat-store",
-      "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com",
-      "DurationSeconds": 7200
-    }
-  },
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": true,
-
-    "OpenSignDocumentBeforeWork": true,
-
-    "OpenTrialRelationDelete": true,
-
-    "OpenLoginLimit": false,
-
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 30,
-    "AutoLoginOutMinutes": 60,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90,
-
-    "OpenLoginMFA": false
-  },
-
-  "SystemEmailSendConfig": {
-    "Port": 587,
-    "Host": "smtp-mail.outlook.com",
-    "FromEmail": "donotreply@elevateimaging.ai",
-    "FromName": "LiLi",
-    "AuthorizationCode": "Q#669869497420ul",
-
-    "OrganizationName": "Elevate Imaging",
-    "OrganizationNameCN": "Elevate Imaging",
-    "CompanyName": "Elevate Imaging Inc.",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Elevate Imaging",
-    "CompanyShortNameCN": "展影医疗",
-    "SiteUrl": "https://lili.test.elevateimaging.ai/login",
-    "IsEnv_US": true,
-    "IsOpenErrorNoticeEmail": false,
-    "ErrorNoticeEmailList": [ "872297557@qq.com" ]
-  },
-
-  "SystemPacsConfig": {
-    "Port": "104",
-    "IP": "3.226.182.187"
-  }
-
-}
diff --git a/IRaCIS.Core.API/appsettings.Uat_HIR.json b/IRaCIS.Core.API/appsettings.Uat_HIR.json
new file mode 100644
index 000000000..39096f159
--- /dev/null
+++ b/IRaCIS.Core.API/appsettings.Uat_HIR.json
@@ -0,0 +1,59 @@
+{
+  "Logging": {
+    "LogLevel": {
+      "Default": "Information",
+      "Microsoft": "Warning",
+      "Microsoft.Hosting.Lifetime": "Information"
+    }
+  },
+  "ObjectStoreService": {
+    "ObjectStoreUse": "MinIO",
+    "MinIO": {
+      "EndPoint": "hir-oss.uat.extimaging.com",
+      "Port": "443",
+      "UseSSL": true,
+      //"endPoint": "106.14.89.110",
+      //"port": "9001",
+      //"useSSL": false,
+      "AccessKeyId": "L6owzRVeDJJw3PcRmK2c",
+      "SecretAccessKey": "2XvFDYSH7EyHQNtpDCgk4efgdsdarQmRKgx1LlOI",
+      "BucketName": "hir-uat",
+      "ViewEndpoint": "https://hir-oss.uat.extimaging.com/hir-uat"
+    }
+
+  },
+  "ConnectionStrings": {
+    "RemoteNew": "Server=101.132.253.119,1435;Database=Uat_HIR;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
+    "Hangfire": "Server=101.132.253.119,1435;Database=Uat_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
+  },
+  "BasicSystemConfig": {
+    "OpenUserComplexPassword": false,
+    "OpenSignDocumentBeforeWork": false,
+    "OpenTrialRelationDelete": true,
+    "OpenLoginLimit": false,
+    "LoginMaxFailCount": 5,
+    "LoginFailLockMinutes": 30,
+    "AESKey": "HIR_System_AES_Key_Info"
+  },
+  "SystemHospitalConfig": {
+    "HospitalCode": "EI",
+    "HospitalLogoPath": "/System/GeneralDocuments/1716453306898_图片2.png",
+    "TrialKeepCount": 60,
+    "HospitalName": "上海展影医疗科技有限公司",
+    "HospitalAliasName": "展影医疗",
+    "Country": "中国",
+    "City": "上海",
+    "Province": "上海",
+    "Address": "上海市杨浦区国泰路复旦科技园",
+    "Phone": "021-60702575",
+    "IsCanConnectInternet": false
+  },
+  "SystemEmailSendConfig": {
+    "Port": 465,
+    "Host": "smtp.qiye.aliyun.com",
+    "FromEmail": "test-study@extimaging.com",
+    "FromName": "Test_HIR",
+    "AuthorizationCode": "zhanying123",
+    "SiteUrl": "http://hir.test.extimaging.com/login"
+  }
+}
\ No newline at end of file
diff --git a/IRaCIS.Core.API/appsettings.Uat_IRC.json b/IRaCIS.Core.API/appsettings.Uat_IRC.json
deleted file mode 100644
index f591b3e19..000000000
--- a/IRaCIS.Core.API/appsettings.Uat_IRC.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "ConnectionStrings": {
-    "RemoteNew": "Server=47.117.164.182,1434;Database=Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
-    "Hangfire": "Server=47.117.164.182,1434;Database=Uat_IRC.Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
-  },
-  "ObjectStoreService": {
-
-    "ObjectStoreUse": "AliyunOSS",
-
-    "AliyunOSS": {
-      "RegionId": "cn-shanghai",
-      "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
-      "EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
-      "AccessKeyId": "LTAI5tRRZehUp2V9pyTPtAJm",
-      "AccessKeySecret": "FLizxkHsMm4CGYHtkV8E3PNJJZU7oV",
-      "RoleArn": "acs:ram::1899121822495495:role/dev-oss-access",
-      "BucketName": "zy-irc-uat-store",
-      "ViewEndpoint": "https://zy-irc-uat-store.oss-cn-shanghai.aliyuncs.com",
-      "Region": "oss-cn-shanghai",
-      "DurationSeconds": 7200
-    },
-
-    "MinIO": {
-      "endPoint": "hir-oss.uat.extimaging.com",
-      "port": "80",
-      "useSSL": false,
-      "viewEndpoint": "http://hir-oss.uat.extimaging.com/irc-uat",
-      //"port": "443",
-      //"useSSL": true,
-      //"viewEndpoint": "https://hir-oss.uat.extimaging.com/irc-uat",
-      "accessKey": "b9Ul0e98xPzt6PwRXA1Q",
-      "secretKey": "DzMaU2L4OXl90uytwOmDXF2encN0Jf4Nxu2XkYqQ",
-      "bucketName": "irc-uat"
-
-    },
-    "AWS": {
-      "Region": "us-east-1",
-      "EndPoint": "s3.us-east-1.amazonaws.com",
-      "UseSSL": true,
-      "RoleArn": "arn:aws:iam::471112624751:role/sts_s3_upload",
-      "AccessKeyId": "AKIAW3MEAFJXWRCGSX5Z",
-      "SecretAccessKey": "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",
-      "BucketName": "ei-med-s3-lili-uat-store",
-      "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com/",
-      "DurationSeconds": 7200
-    }
-  },
-
-  "BasicSystemConfig": {
-
-    "OpenUserComplexPassword": true,
-
-    "OpenSignDocumentBeforeWork": true,
-
-    "OpenLoginLimit": true,
-    "LoginMaxFailCount": 5,
-
-    "LoginFailLockMinutes": 30,
-    "AutoLoginOutMinutes": 60,
-    "OpenLoginMFA": false,
-
-    "ContinuousReadingTimeMin": 120,
-
-    "ReadingRestTimeMin": 10,
-    "IsNeedChangePassWord": true,
-
-    "ChangePassWordDays": 90
-
-  },
-  "SystemEmailSendConfig": {
-    "Port": 465,
-    "Host": "smtp.qiye.aliyun.com",
-    "FromEmail": "uat@extimaging.com",
-    "FromName": "UAT_IRC",
-    "AuthorizationCode": "SHzyyl2021",
-    "SiteUrl": "http://irc.uat.extimaging.com/login",
-    "OrganizationName": "Extlmaging",
-    "OrganizationNameCN": "Extlmaging",
-    "CompanyName": "Extensive Imaging",
-    "CompanyNameCN": "上海展影医疗科技有限公司",
-    "CompanyShortName": "Extensive Imaging",
-    "CompanyShortNameCN": "展影医疗",
-    "IsEnv_US": false,
-    "IsOpenErrorNoticeEmail": false,
-    "ErrorNoticeEmailList": [ "872297557@qq.com" ]
-  },
-
-  "SystemPacsConfig": {
-    "Port": "11113",
-    "IP": "47.117.164.182"
-  }
-
-}
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index e5a3e9428..696a146bd 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -18204,13 +18204,19 @@
             <param name="inQuery"></param>
             <returns></returns>
         </member>
-        <member name="M:IRaCIS.Application.Services.PatientService.RequestPackageAndAnonymizImage(System.Guid,System.Guid,IRaCIS.Core.Application.Helper.IOSSService,System.Boolean)">
+        <member name="M:IRaCIS.Application.Services.PatientService.GetDownloadSubjectVisitStudyInfo(System.Guid,System.Guid)">
             <summary>
-            打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
+            获取下载的访视检查信息
             </summary>
             <param name="trialId"></param>
             <param name="subjectVisitId"></param>
-            <param name="isAnonymize"></param>
+            <returns></returns>
+        </member>
+        <member name="M:IRaCIS.Application.Services.PatientService.DownloadImageSuccess(System.Guid)">
+            <summary>
+            影像下载成功回调
+            </summary>
+            <param name="trialImageDownloadId"></param>
             <returns></returns>
         </member>
         <member name="M:IRaCIS.Application.Services.PatientService.GetTrialSubjectVisitDownloadList(IRaCIS.Application.Contracts.VisitImageDownloadQuery)">
diff --git a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
index 9a604e791..a38dbe7f5 100644
--- a/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/DTO/VisitTaskViewModel.cs
@@ -108,6 +108,9 @@ namespace IRaCIS.Core.Application.ViewModel
 
     public class VisitTaskViewBasic
     {
+
+        public Guid? SourceSubjectVisitId { get; set; }
+
         public string SubjectShortName { get; set; }
 
         public Guid Id { get; set; }
@@ -519,7 +522,7 @@ namespace IRaCIS.Core.Application.ViewModel
 
         public string? SubjectCode { get; set; } = null;
 
-
+        public string? SubjectName { get; set; }
         public string? PatientName { get; set; }
         public string? PatientIdStr { get; set; }
 
@@ -532,6 +535,8 @@ namespace IRaCIS.Core.Application.ViewModel
         public DateTime? BeginSignDate { get; set; }
 
         public DateTime? EndSignDate { get; set; }
+
+        public string? SubjectName { get; set; }
         #endregion
 
         [NotDefault]
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index 9b015371f..edff499d7 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -1185,7 +1185,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
 
         return ResponseOutput.Ok(result, new
         {
-            IsReadingTaskViewInOrder = isReadingTaskViewInOrder == ReadingOrder.InOrder,
+            IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
             RandomReadInfo = iRUnReadOut,
             ReadingTool = readingTool,
             IseCRFShowInDicomReading = criterionConfig.IseCRFShowInDicomReading,
@@ -1266,12 +1266,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
 
            // 前序 不存在 未一致性核查未通过的
            .Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum >= sv.VisitNum))
-           //.WhereIf(critrion.IsAutoCreate == false, t => t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(t => t.IsGeneratedTask == false) ?
-           //t.VisitTaskNum <= t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.IsGeneratedTask == false).Min(t => t.SubjectVisit.VisitNum) : true)
-           //.Where(t => t.Subject.SubjectVisitList.Any(t => t.CheckState != CheckStateEnum.CVPassed) ? t.VisitTaskNum <= t.Subject.SubjectVisitList.Where(t => t.CheckState != CheckStateEnum.CVPassed).Min(t => t.VisitNum) : true)
-           //满足前序访视不存在 需要签署但是未签署  sql  相当复杂    同时想查询所有未读的统计数字 就无法统计   byzhouhang  
-           //但是加字段 IsFrontTaskNeedSignButNotSign   那么签名临床数据的时候,要对该subject 该标准的有效的任务  这个字段需要在签名的时候维护   采取这种方式   统计数字灵活
-           //.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum))
+           .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectName), t => t.Subject.ShortName.Contains(inQuery.SubjectName))
            .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => (t.Subject.Code.Contains(inQuery.SubjectCode!) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(inQuery.SubjectCode!) && t.IsAnalysisCreate));
 
 
@@ -1486,7 +1481,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
               .WhereIf(inQuery.PIAuditState != null, t => t.PIAuditState == inQuery.PIAuditState)
               .WhereIf(inQuery.BeginSignDate != null, t => t.SignTime >= inQuery.BeginSignDate)
               .WhereIf(inQuery.EndSignDate != null, t => t.SignTime <= inQuery.EndSignDate)
-
+               .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectName), t => t.Subject.ShortName.Contains(inQuery.SubjectName))
             //.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
             .WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
             .WhereIf(inQuery.IsUrgent != null, t => t.IsUrgent == inQuery.IsUrgent)
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
index 9dd548228..2d38c8fc7 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs
@@ -42,8 +42,6 @@ namespace IRaCIS.Core.Application.Contracts.Dicom.DTO
 
         public List<InstanceBasicInfo> InstanceInfoList { get; set; } = new List<InstanceBasicInfo>();
 
-        public List<Guid> InstanceList => InstanceInfoList.Select(t => t.Id).ToList();
-        public List<string> InstancePathList => InstanceInfoList.Select(t => t.Path).ToList();
 
         public bool IsExistMutiFrames => InstanceInfoList.Any(t => t.NumberOfFrames > 1);
 
diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
index f445bcb6a..3b96d8562 100644
--- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
+++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/GeneralCalculateService.cs
@@ -838,9 +838,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
                     lesionImage.Add(new Dictionary<string, object>()
                   {
                   { "ImageOneMark",getPicNum(true)+ picRowinfo[2*i].VisitTask.TaskName+" "+picRowinfo[2*i].RowMark},
-                  { "ImageOneUrl" ,await GetWordPictureMaxWL(_options.CurrentValue.MinIO.viewEndpoint+picRowinfo[2*i].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290,390) },
+                  { "ImageOneUrl" ,await GetWordPictureMaxWL(_options.CurrentValue.MinIO.ViewEndpoint+picRowinfo[2*i].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290,390) },
                   { "ImageTwoMark",getPicNum(picCount>2*i+1) + (picCount<=2*i+1?string.Empty:picRowinfo[2*i+1].VisitTask.TaskName+" "+picRowinfo[2*i+1].RowMark) },
-                  { "ImageTwoUrl", picCount<=2*i+1?string.Empty:await GetWordPictureMaxWL(_options.CurrentValue.MinIO.viewEndpoint+picRowinfo[2*i+1].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290, 390)  },
+                  { "ImageTwoUrl", picCount<=2*i+1?string.Empty:await GetWordPictureMaxWL(_options.CurrentValue.MinIO.ViewEndpoint+picRowinfo[2*i+1].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290, 390)  },
 
                  });
                 }
diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs
index 72b1ee836..b7a6cb81b 100644
--- a/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Visit/DTO/PatientViewModel.cs
@@ -1,4 +1,5 @@
-using IRaCIS.Core.Application.ViewModel;
+using IRaCIS.Core.Application.Contracts.Dicom.DTO;
+using IRaCIS.Core.Application.ViewModel;
 using IRaCIS.Core.Domain.Share;
 using IRaCIS.Core.Infrastructure.Extention;
 using Newtonsoft.Json;
@@ -922,14 +923,15 @@ namespace IRaCIS.Application.Contracts
 
         public string IP { get; set; }
 
-        public long VisitImageZipSize { get; set; }
+        public int StudyCount { get; set; }
 
-        //文件大小
-        public int VisitImageFileCount { get; set; }
+        public bool IsSuccess { get; set; }
 
-        public string VisitImageZipPath { get; set; } = string.Empty;
+        public DateTime DownloadStartTime { get; set; }
+        public DateTime? DownloadEndTime { get; set; }
 
-        public int? StudyCount { get; set; }
+        public int ImageCount { get; set; }
+        public long ImageSize { get; set; }
 
         public UserTypeEnum UserTypeEnum { get; set; }
 
@@ -1034,9 +1036,7 @@ namespace IRaCIS.Application.Contracts
         public bool IsDeleted { get; set; }
         public bool IsReading { get; set; } = true;
 
-        public List<Guid> InstanceList { get; set; } = new List<Guid>();
-
-        public List<string> InstancePathList { get; set; } = new List<string>();
+        public List<InstanceBasicInfo> InstanceInfoList { get; set; } = new List<InstanceBasicInfo>();
 
         public string ImageResizePath { get; set; }
     }
diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs
index d178da04a..1c2bdcf03 100644
--- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs
@@ -271,7 +271,7 @@ namespace IRaCIS.Application.Services
 
                 var caheInfo = new TrialCacheInfo() { TrialId = trial.Id, TrialStatusStr = trial.TrialStatusStr, CriterionTypes = trial.CriterionTypes, AuthorizationEncrypt = trial.AuthorizationEncrypt, AuthorizationDate = trial.AuthorizationDate, CreateUserId = trial.CreateUserId, TrialCode = trial.TrialCode };
 
-                await _provider.SetAsync(trial.Id.ToString(),caheInfo, TimeSpan.FromDays(7));
+                await _provider.SetAsync(trial.Id.ToString(), caheInfo, TimeSpan.FromDays(7));
 
                 return ResponseOutput.Ok(trial);
             }
@@ -703,40 +703,26 @@ namespace IRaCIS.Application.Services
               ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
               .ProjectTo<PatientSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
 
-            var idList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
+            var instanceList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
                         .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
                 .Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber }).ToListAsync();//.GroupBy(u => u.SeriesId);
 
-            foreach (var item in seriesList)
+            foreach (var series in seriesList)
             {
-                item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList();
+                series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k =>
+                      new InstanceBasicInfo()
+                      {
+                          Id = k.Id,
+                          NumberOfFrames = k.NumberOfFrames,
+                          HtmlPath = string.Empty,
+                          Path = k.Path,
+                          InstanceNumber = k.InstanceNumber,
 
-                //处理多帧
-                item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber)
-                    .SelectMany(u =>
-                    {
-
-                        if (u.NumberOfFrames > 1)
-                        {
-                            var pathList = new List<string>();
-
-                            for (int i = 1; i <= u.NumberOfFrames; i++)
-                            {
-                                pathList.Add(u.Path + "?frame=" + (i - 1));
-                            }
-                            return pathList;
-                        }
-                        else
-                        {
-                            return new List<string> { u.Path };
-
-                        }
-                    })
-                    .ToList();
+                      }).ToList();
             }
 
 
-            var study = await _studyRepository.FirstOrDefaultAsync(t=>t.Id== scpStudyId);
+            var study = await _studyRepository.FirstOrDefaultAsync(t => t.Id == scpStudyId);
 
             return ResponseOutput.Ok(seriesList, study);
         }
@@ -899,7 +885,7 @@ namespace IRaCIS.Application.Services
                  .WhereIf(inQuery.Status != null, t => t.Status == inQuery.Status)
                  .ProjectTo<PatienSubejctView>(_mapper.ConfigurationProvider);
 
-            var pageList = await subjectQuery.ToPagedListAsync(inQuery, nameof(PatienSubejctView.Code) );
+            var pageList = await subjectQuery.ToPagedListAsync(inQuery, nameof(PatienSubejctView.Code));
 
 
             return ResponseOutput.Ok(pageList);
@@ -2215,9 +2201,7 @@ namespace IRaCIS.Application.Services
                       VisitNum = t.VisitNum,
                       VisitName = t.VisitName,
                       VisitEarliestStudyTime = t.SCPStudySubjectVisitList.Min(t => t.SCPStudy.StudyTime),
-                      VisitLatestStudyTime = t.SCPStudySubjectVisitList.Max(t => t.SCPStudy.StudyTime),
-                      VisitImageZipPath = t.VisitImageZipPath,
-                      PackState = t.PackState,
+                      VisitLatestStudyTime = t.SCPStudySubjectVisitList.Max(t => t.SCPStudy.StudyTime)
                   });
 
             var defalutSortArray = new string[] { nameof(PatientSubjectVisitView.SubjectId), nameof(PatientSubjectVisitView.VisitNum) };
@@ -2707,39 +2691,77 @@ namespace IRaCIS.Application.Services
 
         #endregion
 
+
+
         /// <summary>
-        /// 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
+        /// 获取下载的访视检查信息
         /// </summary>
         /// <param name="trialId"></param>
         /// <param name="subjectVisitId"></param>
-        /// <param name="isAnonymize"></param>
         /// <returns></returns>
-
-        public async Task<IResponseOutput> RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, [FromServices] IOSSService _oSSService, bool isAnonymize = true)
+        public async Task<IResponseOutput> GetDownloadSubjectVisitStudyInfo(Guid trialId, Guid subjectVisitId)
         {
-            var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
+            var query = from sv in _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
 
-            if (subjectVisit.PackState == PackState.WaitPack)
+                        select new
+                        {
+                            TrialId = sv.TrialId,
+                            SubjectId = sv.SubjectId,
+                            SubjectCode = sv.Subject.Code,
+                            VisitName = sv.VisitName,
+
+                            StudyList = sv.StudyList
+
+                            .Select(u => new
+                            {
+                                u.PatientId,
+                                u.StudyTime,
+                                u.StudyCode,
+
+                                SeriesList = u.SeriesList.Select(z => new
+                                {
+                                    z.Modality,
+
+                                    InstanceList = z.DicomInstanceList.Select(k => new
+                                    {
+                                        k.Path,
+                                        k.FileSize
+                                    })
+                                })
+
+                            }).ToList(),
+
+
+                        };
+
+            var result = query.FirstOrDefault();
+
+            var preDownloadInfo = new SubejctVisitDownload()
             {
-                HangfireJobHelper.NotImmediatelyOnceOnlyJob<IDownloadAndUploadService>(t => t.RequestPackageAndAnonymizImage(trialId, subjectVisitId, isAnonymize), TimeSpan.FromSeconds(1));
+                Id = NewId.NextSequentialGuid(),
+                IP = _userInfo.IP,
+                SubjectVisitId = subjectVisitId,
+                DownloadStartTime = DateTime.Now,
+                ImageCount = result.StudyList.Sum(s => s.SeriesList.Sum(s => s.InstanceList.Count())),
+                ImageSize = result.StudyList.Sum(t => t.SeriesList.Sum(s => s.InstanceList.Sum(i => i.FileSize))) ?? 0
+            };
 
-                subjectVisit.PackState = PackState.Packing;
+            await _subejctVisitDownloadRepository.AddAsync(preDownloadInfo, true);
 
-                await _subjectVisitRepository.SaveChangesAsync();
-
-            }
-
-            var zipPath = subjectVisit.VisitImageZipPath;
-
-            if (!string.IsNullOrEmpty(zipPath))
-            {
-                //记录下载的记录
-
-                await _subejctVisitDownloadRepository.AddAsync(new SubejctVisitDownload() { IP = _userInfo.IP, SubjectVisitId = subjectVisitId }, true);
-            }
-
-            return ResponseOutput.Ok(zipPath);
+            return ResponseOutput.Ok(result, preDownloadInfo.Id);
+        }
 
+        /// <summary>
+        /// 影像下载成功回调
+        /// </summary>
+        /// <param name="trialImageDownloadId"></param>
+        /// <returns></returns>
+        [HttpGet]
+        public async Task<IResponseOutput> DownloadImageSuccess(Guid trialImageDownloadId)
+        {
+            await _subejctVisitDownloadRepository.UpdatePartialFromQueryAsync(t => t.Id == trialImageDownloadId, u => new SubejctVisitDownload()
+            { DownloadEndTime = DateTime.Now, IsSuccess = true }, true);
+            return ResponseOutput.Ok();
         }
 
         /// <summary>
@@ -2798,191 +2820,4 @@ namespace IRaCIS.Application.Services
     }
 
 
-    public interface IDownloadAndUploadService
-    {
-        Task RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isAnonymize = true);
-    }
-    [ApiExplorerSettings(GroupName = "Trial")]
-    public class DownloadAndUploadService : BaseService, IDownloadAndUploadService
-    {
-
-        private readonly IRepository<SystemAnonymization> _systemAnonymizationRepository;
-        private readonly IRepository<SubjectVisit> _subjectVisitRepository;
-        private readonly IOSSService _oSSService;
-        public DownloadAndUploadService(IRepository<SystemAnonymization> systemAnonymizationRepository, IRepository<SubjectVisit> subjectVisitRepository, IOSSService oSSService)
-        {
-            _systemAnonymizationRepository = systemAnonymizationRepository;
-
-            _subjectVisitRepository = subjectVisitRepository;
-
-            _oSSService = oSSService;
-        }
-
-
-        public async Task RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isAnonymize = true)
-        {
-
-            var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
-
-            try
-            {
-                var addOrUpdateFixedFieldList = new List<SystemAnonymization>();
-
-                var ircFieldList = new List<SystemAnonymization>();
-
-                if (isAnonymize)
-                {
-                    var systemAnonymizationList = _systemAnonymizationRepository.Where(t => t.IsEnable).ToList();
-
-                    addOrUpdateFixedFieldList = systemAnonymizationList.Where(t => t.IsFixed).ToList();
-
-                    ircFieldList = systemAnonymizationList.Where(t => t.IsFixed == false).ToList();
-                }
-
-                var subjectAndVisitInfo = _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { SubjectCode = t.Subject.Code, t.Trial.TrialCode, t.VisitNum }).FirstOrDefault();
-
-                var query = from sv in _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
-
-                            select new
-                            {
-                                SubjectCode = sv.Subject.Code,
-                                VisitName = sv.VisitName,
-                                StudyList = sv.StudyList.Select(u => new
-                                {
-                                    u.PatientIdStr,
-                                    u.StudyTime,
-                                    u.StudyCode,
-
-                                    SeriesList = u.SeriesList.Select(z => new
-                                    {
-                                        z.Modality,
-
-                                        InstancePathList = z.DicomInstanceList.Select(k => new
-                                        {
-                                            k.Path
-                                        })
-                                    })
-
-                                })
-                            };
-
-                var info = query.FirstOrDefault();
-
-                if (info != null)
-                {
-                    // 创建一个临时文件夹来存放文件
-                    string tempFolderPath = Path.Combine(Directory.GetCurrentDirectory(), $"DownloadTemp_{NewId.NextGuid()}");
-                    Directory.CreateDirectory(tempFolderPath);
-
-                    // 遍历查询结果
-                    foreach (var studyInfo in info.StudyList)
-                    {
-                        // 遍历 Series
-                        foreach (var seriesInfo in studyInfo.SeriesList)
-                        {
-                            string studyFolderPath = Path.Combine(tempFolderPath, $"{info.SubjectCode}_{info.VisitName}", $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{seriesInfo.Modality}");
-
-                            // 创建 影像 文件夹
-                            Directory.CreateDirectory(studyFolderPath);
-
-                            // 遍历 InstancePathList
-                            foreach (var instanceInfo in seriesInfo.InstancePathList)
-                            {
-                                // 复制文件到相应的文件夹
-                                string destinationPath = Path.Combine(studyFolderPath, Path.GetFileName(instanceInfo.Path));
-
-                                //下载到当前目录
-                                await _oSSService.DownLoadFromOSSAsync(instanceInfo.Path, destinationPath);
-
-                                #region 匿名化逻辑
-
-
-                                if (isAnonymize)
-                                {
-                                    DicomFile dicomFile = await DicomFile.OpenAsync(destinationPath, Encoding.Default);
-
-                                    DicomDataset dataset = dicomFile.Dataset;
-
-                                    foreach (var item in addOrUpdateFixedFieldList)
-                                    {
-
-                                        var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16));
-
-                                        dataset.AddOrUpdate(dicomTag, item.ReplaceValue);
-                                    }
-
-                                    foreach (var item in ircFieldList)
-                                    {
-
-                                        var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16));
-
-                                        if (dicomTag == DicomTag.ClinicalTrialProtocolID)
-                                        {
-                                            dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode);
-
-                                        }
-                                        if (dicomTag == DicomTag.ClinicalTrialSiteID)
-                                        {
-                                            //dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialSiteCode);
-
-                                        }
-                                        if (dicomTag == DicomTag.ClinicalTrialSubjectID)
-                                        {
-                                            dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.SubjectCode);
-
-                                        }
-                                        if (dicomTag == DicomTag.ClinicalTrialTimePointID)
-                                        {
-                                            dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.VisitNum.ToString());
-
-                                        }
-                                        if (dicomTag == DicomTag.PatientID)
-                                        {
-                                            dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode + "_" + subjectAndVisitInfo.SubjectCode);
-
-                                        }
-
-                                    }
-                                }
-                                #endregion
-                            }
-                        }
-                    }
-
-                    var zipPath = Path.Combine(Directory.GetCurrentDirectory(), $"{info.SubjectCode}_{info.VisitName}_ImageStudy.zip");
-
-                    ZipFile.CreateFromDirectory(tempFolderPath, zipPath);
-
-                    //上传到Oss
-                    var relativePath = await _oSSService.UploadToOSSAsync(zipPath, $"download_zip/{subjectVisitId}", false);
-
-
-                    //subjectVisit.PackState = PackState.Packed;
-                    //subjectVisit.VisitImageZipPath = relativePath;
-                    //await _subjectVisitRepository.SaveChangesAsync();
-
-                    var zipSize = File.OpenRead(zipPath).Length;
-                    var fileCount = info.StudyList.SelectMany(t => t.SeriesList).SelectMany(t => t.InstancePathList).Count();
-                    await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitImageZipPath = relativePath, VisitImageFileCount = fileCount, VisitImageZipSize = zipSize });
-
-
-                    //清理文件夹
-                    Directory.Delete(tempFolderPath, true);
-                    File.Delete(zipPath);
-
-                }
-            }
-            catch (Exception ex)
-            {
-                await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.WaitPack });
-
-            }
-
-
-
-
-
-        }
-
-    }
 }
diff --git a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs
index 05a50ef5d..d35331b07 100644
--- a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs
@@ -25,9 +25,6 @@ namespace IRaCIS.Core.Application.Service
             CreateMap<SubejctVisitDownload, VisitImageDownloadView>()
                 .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
                 .ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
-                .ForMember(d => d.VisitImageFileCount, u => u.MapFrom(s => s.SubjectVisit.VisitImageFileCount))
-                .ForMember(d => d.VisitImageZipPath, u => u.MapFrom(s => s.SubjectVisit.VisitImageZipPath))
-                 .ForMember(d => d.VisitImageZipSize, u => u.MapFrom(s => s.SubjectVisit.VisitImageZipSize))
                 .ForMember(d => d.DownloadTime, u => u.MapFrom(s => s.CreateTime))
                 .ForMember(d => d.DownloadUserName, u => u.MapFrom(s => s.CreateUser.UserName))
                 .ForMember(d => d.StudyCount, u => u.MapFrom(s => s.SubjectVisit.StudyList.Count()))
@@ -173,9 +170,7 @@ namespace IRaCIS.Core.Application.Service
                  .ForMember(d => d.SubjectShortName, u => u.MapFrom(s => s.Subject.ShortName))
                  .ForMember(d => d.TrialReadingCriterionName, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionName))
                  .ForMember(d => d.CriterionType, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionType))
-                 .ForMember(d => d.PatientList, u => u.MapFrom(s => s.Subject.SubjectPatientList))
-                 .ForMember(d => d.VisitImageZipPath, u => u.MapFrom(s => s.SourceSubjectVisit.VisitImageZipPath))
-                 .ForMember(d => d.PackState, u => u.MapFrom(s => s.SourceSubjectVisit.PackState));
+                 .ForMember(d => d.PatientList, u => u.MapFrom(s => s.Subject.SubjectPatientList));
 
             CreateMap<AddOrUpdateSubjectVisitCommand, SubjectVisit>().ReverseMap();
 
diff --git a/IRaCIS.Core.Domain/HIR/SubejctVisitDownload.cs b/IRaCIS.Core.Domain/HIR/SubejctVisitDownload.cs
index 222ecffd1..b5b67ed0f 100644
--- a/IRaCIS.Core.Domain/HIR/SubejctVisitDownload.cs
+++ b/IRaCIS.Core.Domain/HIR/SubejctVisitDownload.cs
@@ -16,11 +16,9 @@ namespace IRaCIS.Core.Domain.Models
     {
 
 
-        [Required]
         public string IP { get; set; }
 
 
-        [Required]
         public Guid SubjectVisitId { get; set; }
 
         [ForeignKey("SubjectVisitId")]
@@ -28,6 +26,15 @@ namespace IRaCIS.Core.Domain.Models
         public SubjectVisit SubjectVisit { get; set; }
 
 
+
+        public bool IsSuccess { get; set; }
+
+        public DateTime DownloadStartTime { get; set; }
+        public DateTime? DownloadEndTime { get; set; }
+
+        public int ImageCount { get; set; }
+        public long ImageSize { get; set; }
+
     }
 
 }
diff --git a/IRaCIS.Core.Domain/Visit/SubjectVisit.cs b/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
index ccb6d6aa5..e9d3faf70 100644
--- a/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
+++ b/IRaCIS.Core.Domain/Visit/SubjectVisit.cs
@@ -184,17 +184,5 @@ public class SubjectVisit : BaseFullDeleteAuditEntity
     public ReadingStatusEnum ReadingStatus { get; set; }
 
 
-    #region HIR 废弃
-    //文件数
-    public long VisitImageZipSize { get; set; }
-
-    //文件大小
-    public int VisitImageFileCount { get; set; }
-
-    public string VisitImageZipPath { get; set; } = string.Empty;
-
-    //路径
-    public PackState PackState { get; set; }
-    #endregion
 }
 
diff --git a/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs b/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs
index 6b6e1253e..2cc7b32b6 100644
--- a/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs
+++ b/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs
@@ -258,7 +258,7 @@ namespace IRaCIS.Core.Domain.Share
 
             get
             {
-                var url = _accessor?.HttpContext?.Request?.Path.ToString();
+                var url = _accessor?.HttpContext?.Request?.Path.ToString()??string.Empty;
 
                 var list = url.Split('/').Where(t => !string.IsNullOrWhiteSpace(t)).ToList();
 
diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.Designer.cs
new file mode 100644
index 000000000..171324357
--- /dev/null
+++ b/IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.Designer.cs
@@ -0,0 +1,18661 @@
+// <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("20241114064649_ImageDown")]
+    partial class ImageDown
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "8.0.10")
+                .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>("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<string>("Type")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("文件类型名");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("DoctorId");
+
+                    b.ToTable("Attachment", 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>("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>("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("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.DicomAE", 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<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.ToTable("DicomAE", t =>
+                        {
+                            t.HasComment("医院dicomAE 配置");
+                        });
+                });
+
+            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<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(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<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<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<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.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<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>("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>("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>("StudyCode")
+                        .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<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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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<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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid>("GCPId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime?>("GCPTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("HospitalId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SpecialityOtherCN")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SubspecialityOther")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SubspecialityOtherCN")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("Summarize")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SummarizeEn")
+                        .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>("WeChat")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("WorkPartTime")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("WorkPartTimeEn")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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.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.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<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<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.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.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>("IsConfig")
+                        .HasColumnType("bit")
+                        .HasComment("未知是否有用-废弃核查");
+
+                    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.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<string>("Description")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<int>("FileCount")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("ImageDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("Modality")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("StudyCode")
+                        .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.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<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<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.PIAudit", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool?>("IsEnrollment")
+                        .HasColumnType("bit");
+
+                    b.Property<bool?>("IsPDConfirm")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("NotAgreeReason")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditImagePath")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditNote")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<int?>("PIAuditState")
+                        .HasColumnType("int");
+
+                    b.Property<string>("ReplyContent")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid>("VisitTaskId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("VisitTaskId");
+
+                    b.ToTable("PIAudit");
+                });
+
+            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.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("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("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("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.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.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<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<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<int>("PIReadingScopenEnum")
+                        .HasColumnType("int");
+
+                    b.Property<int>("ReadingDivisionEnum")
+                        .HasColumnType("int");
+
+                    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<int>("ReadingType")
+                        .HasColumnType("int")
+                        .HasComment("阅片模式");
+
+                    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<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("答案组合");
+
+                    b.Property<string>("AnswerGroup")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("答案分组");
+
+                    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<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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>("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<Guid?>("DependParentId")
+                        .HasColumnType("uniqueidentifier")
+                        .HasComment("关联父问题");
+
+                    b.Property<string>("DictionaryCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("字典code");
+
+                    b.Property<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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>("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<Guid?>("DependParentId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("DictionaryCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("字典code");
+
+                    b.Property<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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<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?>("FirstAddTaskId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("InstanceId")
+                        .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?>("SeriesId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("StudyId")
+                        .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.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    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<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    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.SCPStudySubjectVisit", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SCPStudyId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("StudyId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("SCPStudyId");
+
+                    b.HasIndex("SubjectId");
+
+                    b.HasIndex("SubjectVisitId");
+
+                    b.ToTable("SCPStudySubjectVisit", 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.SubejctVisitDownload", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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<bool>("IsSuccess")
+                        .HasColumnType("bit");
+
+                    b.Property<Guid>("SubjectVisitId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("SubjectVisitId");
+
+                    b.ToTable("SubejctVisitDownload", 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>("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.SubjectPatient", 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>("IsBinded")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<Guid>("PatientId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SubjectId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("PatientId");
+
+                    b.HasIndex("SubjectId");
+
+                    b.ToTable("SubjectPatient", t =>
+                        {
+                            t.HasComment("受试者患者绑定关系");
+                        });
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectPatientSCPStudy", 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>("PatientId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SCPStudyId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.ToTable("SubjectPatientSCPStudy", 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<int>("PackState")
+                        .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");
+
+                    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<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<int>("VisitImageFileCount")
+                        .HasColumnType("int");
+
+                    b.Property<string>("VisitImageZipPath")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<long>("VisitImageZipSize")
+                        .HasColumnType("bigint");
+
+                    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.SubjectVisitClinicalDialog", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("Content")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SubjectVisitId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.ToTable("SubjectVisitClinicalDialog");
+                });
+
+            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>("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>("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.SystemDocConfirmedUser", 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("SystemDocConfirmedUser", 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<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<string>("Name")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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.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");
+
+                    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<DateTime?>("AuthorizationDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("AuthorizationDuration")
+                        .HasColumnType("int");
+
+                    b.Property<string>("AuthorizationEncrypt")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    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<string>("CRO")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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<string>("ContactPhone")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("ContactUser")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("CriterionTypes")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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?>("EnrollConfirmDefaultUserType")
+                        .HasColumnType("int");
+
+                    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>("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>("IsDeclaration")
+                        .HasColumnType("bit");
+
+                    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>("IsImageConsistencyVerification")
+                        .HasColumnType("bit")
+                        .HasComment("影像一致性核查");
+
+                    b.Property<bool>("IsImageExport")
+                        .HasColumnType("bit")
+                        .HasComment("影像导出");
+
+                    b.Property<bool>("IsImageReplicationAcrossTrial")
+                        .HasColumnType("bit")
+                        .HasComment("跨项目复制");
+
+                    b.Property<bool>("IsMedicalReview")
+                        .HasColumnType("bit");
+
+                    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>("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>("MedicineName")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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<int?>("PDProgressDefaultUserType")
+                        .HasColumnType("int");
+
+                    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<string>("Sponsor")
+                        .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<string>("VisitBaseDataDes")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<bool>("VisitPlanConfirmed")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("VitrualSiteCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("IndicationTypeId");
+
+                    b.HasIndex("PhaseId");
+
+                    b.HasIndex("QCQuestionConfirmedUserId");
+
+                    b.HasIndex("ReviewModeId");
+
+                    b.ToTable("Trial", t =>
+                        {
+                            t.HasComment("项目 - 项目基本信息与配置");
+                        });
+                });
+
+            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>("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>("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.TrialDocConfirmedUser", 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("TrialDocConfirmedUser", t =>
+                        {
+                            t.HasComment("项目 - 项目文档签署记录");
+                        });
+                });
+
+            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<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<string>("Name")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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.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");
+
+                    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");
+
+                    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");
+
+                    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.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.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<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("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.TrialSiteUser", 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");
+
+                    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.TrialUser", 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<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.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("TrialId");
+
+                    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.User", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("AutoCutNextTask")
+                        .HasColumnType("bit")
+                        .HasComment("自动切换下一个任务");
+
+                    b.Property<string>("CheckCode")
+                        .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<string>("DepartmentName")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid?>("DoctorId")
+                        .HasColumnType("uniqueidentifier")
+                        .HasComment("医生生成账号后,会有值");
+
+                    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<bool>("SuperAdmin")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("UserCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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("UserTypeId");
+
+                    b.ToTable("User", t =>
+                        {
+                            t.HasComment("后台 - 系统账户");
+                        });
+                });
+
+            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<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<string>("LoginFaildName")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("LoginPassword")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid?>("LoginUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("OptType")
+                        .HasColumnType("int");
+
+                    b.Property<Guid?>("OptUserId")
+                        .HasColumnType("uniqueidentifier")
+                        .HasComment("被操作的人,自己操作的就是自己");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("LoginUserId");
+
+                    b.HasIndex("OptUserId");
+
+                    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<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.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?>("FirstAuditTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("FirstAuditUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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>("IsConfirmReminder")
+                        .HasColumnType("bit");
+
+                    b.Property<bool?>("IsEnrollment")
+                        .HasColumnType("bit");
+
+                    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?>("IsPDConfirm")
+                        .HasColumnType("bit");
+
+                    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<DateTime?>("LatestReplyTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("LatestReplyUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("NotAgreeReason")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditImagePath")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditNote")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<int>("PIAuditState")
+                        .HasColumnType("int");
+
+                    b.Property<string>("PastResultTaskIds")
+                        .IsRequired()
+                        .HasMaxLength(2000)
+                        .HasColumnType("nvarchar(2000)")
+                        .HasComment("既往任务Id  不包括自己");
+
+                    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<DateTime?>("ReportExportDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int?>("ReportExportNum")
+                        .HasColumnType("int");
+
+                    b.Property<string>("ReportExportUrl")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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?>("SubjectCriterionClaimUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.002   全局任务在截止访视号上+0.03   肿瘤待定");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("DoctorUserId");
+
+                    b.HasIndex("FirstAuditUserId");
+
+                    b.HasIndex("JudgeResultTaskId");
+
+                    b.HasIndex("JudgeVisitTaskId");
+
+                    b.HasIndex("LatestReplyUserId");
+
+                    b.HasIndex("SouceReadModuleId");
+
+                    b.HasIndex("SourceSubjectVisitId");
+
+                    b.HasIndex("SubjectCriterionClaimUserId");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
+                        .WithMany("AttachmentList")
+                        .HasForeignKey("DoctorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
+                        .WithMany("ClinicalFormList")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("ClinicalDataTrialSet");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Subject");
+                });
+
+            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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("ClinicalForm");
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
+                        .WithMany()
+                        .HasForeignKey("CriterionId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomAE", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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()
+                        .HasForeignKey("StudyId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("DicomSerie");
+
+                    b.Navigation("DicomStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.Navigation("CreateUser");
+
+                    b.Navigation("DicomStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent")
+                        .WithMany("ChildList")
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("ConfigDictionary");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Parent");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
+                        .WithMany("CriterionFileList")
+                        .HasForeignKey("DoctorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+                });
+
+            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.Education", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            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.User", "CreateUser")
+                        .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.User", "DoctorUser")
+                        .WithMany()
+                        .HasForeignKey("DoctorUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany("EnrollList")
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+
+                    b.Navigation("DoctorUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("IntoGroupDetails")
+                        .HasForeignKey("TrialDetailId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+
+                    b.Navigation("TrialDetail");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
+                        .WithMany("EnrollReadingCategoryList")
+                        .HasForeignKey("EnrollId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Enroll");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
+                        .WithMany("EnrollReadingCriteriaList")
+                        .HasForeignKey("EnrollId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Enroll");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site")
+                        .WithMany()
+                        .HasForeignKey("SiteId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Site");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog")
+                        .WithMany()
+                        .HasForeignKey("PublishLogId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("PublishLog");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.Navigation("CreateUser");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("NoneDicomStudy");
+
+                    b.Navigation("OriginNoneDicomStudy");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo")
+                        .WithMany()
+                        .HasForeignKey("OrganInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("OrganInfo");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PIAudit", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
+                        .WithMany()
+                        .HasForeignKey("VisitTaskId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "LatestReplyUser")
+                        .WithMany()
+                        .HasForeignKey("LatestReplyUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
+                        .WithMany("QCChallengeList")
+                        .HasForeignKey("SubjectVisitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("LatestReplyUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("QCChallenge");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ParentQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingConsistentClinicalData");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("GlobalVisitTask");
+
+                    b.Navigation("TrialReadingQuestion");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TaskMedicalReview");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview")
+                        .WithMany()
+                        .HasForeignKey("TaskMedicalReviewId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TaskMedicalReview");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ParentQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ParentQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("OncologyVisitTask");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingPeriodSet");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage")
+                        .WithMany()
+                        .HasForeignKey("VisitStageId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("VisitStage");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingPeriodSet");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary")
+                        .WithMany()
+                        .HasForeignKey("DictionaryId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Dictionary");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("DependParentQuestion");
+
+                    b.Navigation("ReadingQuestionSystem");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("DependParentQuestion");
+
+                    b.Navigation("ReadingQuestionTrial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingQuestionTrial");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.VisitTask", "VisitTask")
+                        .WithMany()
+                        .HasForeignKey("VisitTaskId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ReadingQuestionTrial");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
+                        .WithMany()
+                        .HasForeignKey("TaskId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Dictionary");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SCPSeries");
+
+                    b.Navigation("SCPStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SCPStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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")
+                        .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("CreateUser");
+
+                    b.Navigation("Patient");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudySubjectVisit", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
+                        .WithMany("SCPStudySubjectVisitList")
+                        .HasForeignKey("SCPStudyId")
+                        .HasPrincipalKey("Id")
+                        .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("SCPStudySubjectVisitList")
+                        .HasForeignKey("SubjectVisitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("SCPStudy");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital")
+                        .WithMany()
+                        .HasForeignKey("HospitalId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Hospital");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("DicomStudy");
+
+                    b.Navigation("NoneDicomStudy");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("TaskStudy");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubejctVisitDownload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
+                        .WithMany()
+                        .HasForeignKey("SubjectVisitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Subject");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+
+                    b.Navigation("subject");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Series");
+
+                    b.Navigation("Study");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectPatient", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient")
+                        .WithMany("SubjectPatientList")
+                        .HasForeignKey("PatientId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
+                        .WithMany("SubjectPatientList")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Patient");
+
+                    b.Navigation("Subject");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectPatientSCPStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CurrentActionUser")
+                        .WithMany()
+                        .HasForeignKey("CurrentActionUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "ForwardUser")
+                        .WithMany()
+                        .HasForeignKey("ForwardUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit")
+                        .WithMany()
+                        .HasForeignKey("OutPlanPreviousVisitId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "PreliminaryAuditUser")
+                        .WithMany()
+                        .HasForeignKey("PreliminaryAuditUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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.User", "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("CreateUser");
+
+                    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.SubjectVisitClinicalDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Parent");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin")
+                        .WithMany()
+                        .HasForeignKey("GroupId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("GroupQuestin");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "ConfirmUser")
+                        .WithMany("SystemDocConfirmedList")
+                        .HasForeignKey("ConfirmUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType")
+                        .WithMany()
+                        .HasForeignKey("FileTypeId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("FileType");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "PublishedUser")
+                        .WithMany()
+                        .HasForeignKey("PublishedUserId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("PublishedUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("NoticeUserType");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "DoctorUser")
+                        .WithMany()
+                        .HasForeignKey("DoctorUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
+                        .WithMany()
+                        .HasForeignKey("EnrollId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("DoctorUser");
+
+                    b.Navigation("Enroll");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("InfluenceTask");
+
+                    b.Navigation("OriginalTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TaskSeries");
+
+                    b.Navigation("TaskStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "LatestReplyUser")
+                        .WithMany()
+                        .HasForeignKey("LatestReplyUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "DoctorUser")
+                        .WithMany()
+                        .HasForeignKey("DoctorUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("DoctorUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TaskStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.User", "QCQuestionConfirmedUser")
+                        .WithMany()
+                        .HasForeignKey("QCQuestionConfirmedUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode")
+                        .WithMany()
+                        .HasForeignKey("ReviewModeId");
+
+                    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("CreateUser");
+
+                    b.Navigation("IndicationType");
+
+                    b.Navigation("Phase");
+
+                    b.Navigation("QCQuestionConfirmedUser");
+
+                    b.Navigation("ReviewMode");
+
+                    b.Navigation("TrialObjectNameList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialClinicalDataSet");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("GroupQuestin");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
+                        .WithMany()
+                        .HasForeignKey("TrialCriterionId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            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.TrialDocConfirmedUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "User")
+                        .WithMany()
+                        .HasForeignKey("ConfirmUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("FileType");
+
+                    b.Navigation("Trial");
+                });
+
+            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.User", "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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ParentQCQuestion");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure")
+                        .WithMany("TrialQCQuestionAnswerList")
+                        .HasForeignKey("TrialQCQuestionConfigureId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TrialQCQuestionConfigure");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Site");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("EquipmentType");
+
+                    b.Navigation("TrialSiteSurvey");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "PreliminaryUser")
+                        .WithMany()
+                        .HasForeignKey("PreliminaryUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    b.Navigation("PreliminaryUser");
+
+                    b.Navigation("ReviewerUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.User", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialSite");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialSiteSurvey");
+
+                    b.Navigation("UserTypeRole");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany("TrialUserList")
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "User")
+                        .WithMany("UserTrials")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.User", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null)
+                        .WithOne("User")
+                        .HasForeignKey("IRaCIS.Core.Domain.Models.User", "DoctorId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole")
+                        .WithMany("UserList")
+                        .HasForeignKey("UserTypeId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("UserTypeRole");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "LoginUser")
+                        .WithMany()
+                        .HasForeignKey("LoginUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "OptUser")
+                        .WithMany()
+                        .HasForeignKey("OptUserId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("LoginUser");
+
+                    b.Navigation("OptUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("VisitPlanInfluenceStat");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "DoctorUser")
+                        .WithMany("VisitTaskList")
+                        .HasForeignKey("DoctorUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "FirstAuditUser")
+                        .WithMany()
+                        .HasForeignKey("FirstAuditUserId");
+
+                    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.User", "LatestReplyUser")
+                        .WithMany()
+                        .HasForeignKey("LatestReplyUserId");
+
+                    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.User", "SubjectCriterionClaimUser")
+                        .WithMany()
+                        .HasForeignKey("SubjectCriterionClaimUserId");
+
+                    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("CreateUser");
+
+                    b.Navigation("DoctorUser");
+
+                    b.Navigation("FirstAuditUser");
+
+                    b.Navigation("JudgeResultTask");
+
+                    b.Navigation("JudgeVisitTask");
+
+                    b.Navigation("LatestReplyUser");
+
+                    b.Navigation("ReadModule");
+
+                    b.Navigation("SourceSubjectVisit");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectCriterionClaimUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.User", "RequestReReadingConfirmUser")
+                        .WithMany()
+                        .HasForeignKey("RequestReReadingConfirmUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            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("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("User")
+                        .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");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
+                {
+                    b.Navigation("DoctorList");
+                });
+
+            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");
+
+                    b.Navigation("SubjectPatientList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
+                {
+                    b.Navigation("SCPInstanceList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
+                {
+                    b.Navigation("InstanceList");
+
+                    b.Navigation("SCPStudySubjectVisitList");
+
+                    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("SubjectPatientList");
+
+                    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("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("SCPStudySubjectVisitList");
+
+                    b.Navigation("StudyList");
+
+                    b.Navigation("SubjectCriteriaEvaluationVisitFilterList");
+
+                    b.Navigation("VisitTaskList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b =>
+                {
+                    b.Navigation("NeedConfirmedUserTypeList");
+
+                    b.Navigation("SystemDocConfirmedUserList");
+                });
+
+            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("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("TrialReadingCriterionList");
+
+                    b.Navigation("TrialSiteList");
+
+                    b.Navigation("TrialSiteSurveyList");
+
+                    b.Navigation("TrialSiteUserList");
+
+                    b.Navigation("TrialStateChangeList");
+
+                    b.Navigation("TrialUserList");
+
+                    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");
+                });
+
+            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.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.TrialStatusDetail", b =>
+                {
+                    b.Navigation("IntoGroupDetails");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.User", b =>
+                {
+                    b.Navigation("SystemDocConfirmedList");
+
+                    b.Navigation("UserTrials");
+
+                    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("ReadingTaskQuestionAnswerList");
+
+                    b.Navigation("TaskInfluenceList");
+
+                    b.Navigation("TaskMedicalReviewList");
+
+                    b.Navigation("TaskNoneDicomStudyFileList");
+
+                    b.Navigation("TaskStudyList");
+
+                    b.Navigation("UserFeedBackList");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.cs
new file mode 100644
index 000000000..c0e52e550
--- /dev/null
+++ b/IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.cs
@@ -0,0 +1,121 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace IRaCIS.Core.Infra.EFCore.Migrations
+{
+    /// <inheritdoc />
+    public partial class ImageDown : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropForeignKey(
+                name: "FK_SCPInstance_SCPStudy_StudyId",
+                table: "SCPInstance");
+
+            migrationBuilder.DropForeignKey(
+                name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
+                table: "SCPStudySubjectVisit");
+
+            migrationBuilder.AddColumn<DateTime>(
+                name: "DownloadEndTime",
+                table: "SubejctVisitDownload",
+                type: "datetime2",
+                nullable: true);
+
+            migrationBuilder.AddColumn<DateTime>(
+                name: "DownloadStartTime",
+                table: "SubejctVisitDownload",
+                type: "datetime2",
+                nullable: false,
+                defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
+
+            migrationBuilder.AddColumn<int>(
+                name: "ImageCount",
+                table: "SubejctVisitDownload",
+                type: "int",
+                nullable: false,
+                defaultValue: 0);
+
+            migrationBuilder.AddColumn<long>(
+                name: "ImageSize",
+                table: "SubejctVisitDownload",
+                type: "bigint",
+                nullable: false,
+                defaultValue: 0L);
+
+            migrationBuilder.AddColumn<bool>(
+                name: "IsSuccess",
+                table: "SubejctVisitDownload",
+                type: "bit",
+                nullable: false,
+                defaultValue: false);
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_SCPInstance_SCPStudy_StudyId",
+                table: "SCPInstance",
+                column: "StudyId",
+                principalTable: "SCPStudy",
+                principalColumn: "Id",
+                onDelete: ReferentialAction.Cascade);
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
+                table: "SCPStudySubjectVisit",
+                column: "SCPStudyId",
+                principalTable: "SCPStudy",
+                principalColumn: "Id",
+                onDelete: ReferentialAction.Cascade);
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropForeignKey(
+                name: "FK_SCPInstance_SCPStudy_StudyId",
+                table: "SCPInstance");
+
+            migrationBuilder.DropForeignKey(
+                name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
+                table: "SCPStudySubjectVisit");
+
+            migrationBuilder.DropColumn(
+                name: "DownloadEndTime",
+                table: "SubejctVisitDownload");
+
+            migrationBuilder.DropColumn(
+                name: "DownloadStartTime",
+                table: "SubejctVisitDownload");
+
+            migrationBuilder.DropColumn(
+                name: "ImageCount",
+                table: "SubejctVisitDownload");
+
+            migrationBuilder.DropColumn(
+                name: "ImageSize",
+                table: "SubejctVisitDownload");
+
+            migrationBuilder.DropColumn(
+                name: "IsSuccess",
+                table: "SubejctVisitDownload");
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_SCPInstance_SCPStudy_StudyId",
+                table: "SCPInstance",
+                column: "StudyId",
+                principalTable: "SCPStudy",
+                principalColumn: "SeqId",
+                onDelete: ReferentialAction.Cascade);
+
+            migrationBuilder.AddForeignKey(
+                name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
+                table: "SCPStudySubjectVisit",
+                column: "SCPStudyId",
+                principalTable: "SCPStudy",
+                principalColumn: "SeqId",
+                onDelete: ReferentialAction.Cascade);
+        }
+    }
+}
diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.Designer.cs
new file mode 100644
index 000000000..b10dde7ab
--- /dev/null
+++ b/IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.Designer.cs
@@ -0,0 +1,18647 @@
+// <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("20241114085858_RemoveSubjectVisitInfo")]
+    partial class RemoveSubjectVisitInfo
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "8.0.10")
+                .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>("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<string>("Type")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("文件类型名");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("DoctorId");
+
+                    b.ToTable("Attachment", 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>("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>("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("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.DicomAE", 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<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.ToTable("DicomAE", t =>
+                        {
+                            t.HasComment("医院dicomAE 配置");
+                        });
+                });
+
+            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<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(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<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<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<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.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<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>("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>("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>("StudyCode")
+                        .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<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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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<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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid>("GCPId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime?>("GCPTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("HospitalId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SpecialityOtherCN")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SubspecialityOther")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SubspecialityOtherCN")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("Summarize")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("SummarizeEn")
+                        .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>("WeChat")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("WorkPartTime")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("WorkPartTimeEn")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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.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.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<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<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.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.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>("IsConfig")
+                        .HasColumnType("bit")
+                        .HasComment("未知是否有用-废弃核查");
+
+                    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.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<string>("Description")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<int>("FileCount")
+                        .HasColumnType("int");
+
+                    b.Property<DateTime>("ImageDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<string>("Modality")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("StudyCode")
+                        .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.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<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<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.PIAudit", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool?>("IsEnrollment")
+                        .HasColumnType("bit");
+
+                    b.Property<bool?>("IsPDConfirm")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("NotAgreeReason")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditImagePath")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditNote")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<int?>("PIAuditState")
+                        .HasColumnType("int");
+
+                    b.Property<string>("ReplyContent")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid>("VisitTaskId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("VisitTaskId");
+
+                    b.ToTable("PIAudit");
+                });
+
+            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.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("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("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("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.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.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<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<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<int>("PIReadingScopenEnum")
+                        .HasColumnType("int");
+
+                    b.Property<int>("ReadingDivisionEnum")
+                        .HasColumnType("int");
+
+                    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<int>("ReadingType")
+                        .HasColumnType("int")
+                        .HasComment("阅片模式");
+
+                    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<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("答案组合");
+
+                    b.Property<string>("AnswerGroup")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("答案分组");
+
+                    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<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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>("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<Guid?>("DependParentId")
+                        .HasColumnType("uniqueidentifier")
+                        .HasComment("关联父问题");
+
+                    b.Property<string>("DictionaryCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("字典code");
+
+                    b.Property<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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>("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<Guid?>("DependParentId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("DictionaryCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)")
+                        .HasComment("字典code");
+
+                    b.Property<int?>("ExportIdentification")
+                        .HasColumnType("int")
+                        .HasComment("导出标识");
+
+                    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<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?>("FirstAddTaskId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("InstanceId")
+                        .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?>("SeriesId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("StudyId")
+                        .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.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    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<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    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.SCPStudySubjectVisit", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SCPStudyId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid?>("StudyId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("SCPStudyId");
+
+                    b.HasIndex("SubjectId");
+
+                    b.HasIndex("SubjectVisitId");
+
+                    b.ToTable("SCPStudySubjectVisit", 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.SubejctVisitDownload", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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<bool>("IsSuccess")
+                        .HasColumnType("bit");
+
+                    b.Property<Guid>("SubjectVisitId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("SubjectVisitId");
+
+                    b.ToTable("SubejctVisitDownload", 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>("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.SubjectPatient", 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>("IsBinded")
+                        .HasColumnType("bit");
+
+                    b.Property<bool>("IsDeleted")
+                        .HasColumnType("bit");
+
+                    b.Property<Guid>("PatientId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SubjectId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("PatientId");
+
+                    b.HasIndex("SubjectId");
+
+                    b.ToTable("SubjectPatient", t =>
+                        {
+                            t.HasComment("受试者患者绑定关系");
+                        });
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectPatientSCPStudy", 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>("PatientId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SCPStudyId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.ToTable("SubjectPatientSCPStudy", 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");
+
+                    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<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.SubjectVisitClinicalDialog", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("Content")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<Guid>("SubjectVisitId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.ToTable("SubjectVisitClinicalDialog");
+                });
+
+            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>("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>("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.SystemDocConfirmedUser", 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("SystemDocConfirmedUser", 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<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<string>("Name")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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.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");
+
+                    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<DateTime?>("AuthorizationDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int>("AuthorizationDuration")
+                        .HasColumnType("int");
+
+                    b.Property<string>("AuthorizationEncrypt")
+                        .IsRequired()
+                        .HasColumnType("nvarchar(max)");
+
+                    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<string>("CRO")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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<string>("ContactPhone")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("ContactUser")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<DateTime>("CreateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("CreateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("CriterionTypes")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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?>("EnrollConfirmDefaultUserType")
+                        .HasColumnType("int");
+
+                    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>("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>("IsDeclaration")
+                        .HasColumnType("bit");
+
+                    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>("IsImageConsistencyVerification")
+                        .HasColumnType("bit")
+                        .HasComment("影像一致性核查");
+
+                    b.Property<bool>("IsImageExport")
+                        .HasColumnType("bit")
+                        .HasComment("影像导出");
+
+                    b.Property<bool>("IsImageReplicationAcrossTrial")
+                        .HasColumnType("bit")
+                        .HasComment("跨项目复制");
+
+                    b.Property<bool>("IsMedicalReview")
+                        .HasColumnType("bit");
+
+                    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>("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>("MedicineName")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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<int?>("PDProgressDefaultUserType")
+                        .HasColumnType("int");
+
+                    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<string>("Sponsor")
+                        .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<string>("VisitBaseDataDes")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<bool>("VisitPlanConfirmed")
+                        .HasColumnType("bit");
+
+                    b.Property<string>("VitrualSiteCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("IndicationTypeId");
+
+                    b.HasIndex("PhaseId");
+
+                    b.HasIndex("QCQuestionConfirmedUserId");
+
+                    b.HasIndex("ReviewModeId");
+
+                    b.ToTable("Trial", t =>
+                        {
+                            t.HasComment("项目 - 项目基本信息与配置");
+                        });
+                });
+
+            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>("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>("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.TrialDocConfirmedUser", 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("TrialDocConfirmedUser", t =>
+                        {
+                            t.HasComment("项目 - 项目文档签署记录");
+                        });
+                });
+
+            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<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<string>("Name")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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.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");
+
+                    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");
+
+                    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");
+
+                    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.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.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<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("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.TrialSiteUser", 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");
+
+                    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.TrialUser", 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<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.Property<Guid>("UserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("TrialId");
+
+                    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.User", b =>
+                {
+                    b.Property<Guid>("Id")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<bool>("AutoCutNextTask")
+                        .HasColumnType("bit")
+                        .HasComment("自动切换下一个任务");
+
+                    b.Property<string>("CheckCode")
+                        .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<string>("DepartmentName")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid?>("DoctorId")
+                        .HasColumnType("uniqueidentifier")
+                        .HasComment("医生生成账号后,会有值");
+
+                    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<bool>("SuperAdmin")
+                        .HasColumnType("bit");
+
+                    b.Property<DateTime>("UpdateTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid>("UpdateUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("UserCode")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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("UserTypeId");
+
+                    b.ToTable("User", t =>
+                        {
+                            t.HasComment("后台 - 系统账户");
+                        });
+                });
+
+            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<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<string>("LoginFaildName")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("LoginPassword")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<Guid?>("LoginUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<int>("OptType")
+                        .HasColumnType("int");
+
+                    b.Property<Guid?>("OptUserId")
+                        .HasColumnType("uniqueidentifier")
+                        .HasComment("被操作的人,自己操作的就是自己");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("LoginUserId");
+
+                    b.HasIndex("OptUserId");
+
+                    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<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.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?>("FirstAuditTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("FirstAuditUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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>("IsConfirmReminder")
+                        .HasColumnType("bit");
+
+                    b.Property<bool?>("IsEnrollment")
+                        .HasColumnType("bit");
+
+                    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?>("IsPDConfirm")
+                        .HasColumnType("bit");
+
+                    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<DateTime?>("LatestReplyTime")
+                        .HasColumnType("datetime2");
+
+                    b.Property<Guid?>("LatestReplyUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    b.Property<string>("NotAgreeReason")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditImagePath")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<string>("PIAuditNote")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    b.Property<int>("PIAuditState")
+                        .HasColumnType("int");
+
+                    b.Property<string>("PastResultTaskIds")
+                        .IsRequired()
+                        .HasMaxLength(2000)
+                        .HasColumnType("nvarchar(2000)")
+                        .HasComment("既往任务Id  不包括自己");
+
+                    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<DateTime?>("ReportExportDate")
+                        .HasColumnType("datetime2");
+
+                    b.Property<int?>("ReportExportNum")
+                        .HasColumnType("int");
+
+                    b.Property<string>("ReportExportUrl")
+                        .IsRequired()
+                        .HasMaxLength(400)
+                        .HasColumnType("nvarchar(400)");
+
+                    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?>("SubjectCriterionClaimUserId")
+                        .HasColumnType("uniqueidentifier");
+
+                    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.002   全局任务在截止访视号上+0.03   肿瘤待定");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("CreateUserId");
+
+                    b.HasIndex("DoctorUserId");
+
+                    b.HasIndex("FirstAuditUserId");
+
+                    b.HasIndex("JudgeResultTaskId");
+
+                    b.HasIndex("JudgeVisitTaskId");
+
+                    b.HasIndex("LatestReplyUserId");
+
+                    b.HasIndex("SouceReadModuleId");
+
+                    b.HasIndex("SourceSubjectVisitId");
+
+                    b.HasIndex("SubjectCriterionClaimUserId");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
+                        .WithMany("AttachmentList")
+                        .HasForeignKey("DoctorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
+                        .WithMany("ClinicalFormList")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("ClinicalDataTrialSet");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Subject");
+                });
+
+            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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("ClinicalForm");
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
+                        .WithMany()
+                        .HasForeignKey("CriterionId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomAE", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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()
+                        .HasForeignKey("StudyId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("DicomSerie");
+
+                    b.Navigation("DicomStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.Navigation("CreateUser");
+
+                    b.Navigation("DicomStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent")
+                        .WithMany("ChildList")
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("ConfigDictionary");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Parent");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor")
+                        .WithMany("CriterionFileList")
+                        .HasForeignKey("DoctorId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+                });
+
+            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.Education", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            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.User", "CreateUser")
+                        .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.User", "DoctorUser")
+                        .WithMany()
+                        .HasForeignKey("DoctorUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany("EnrollList")
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+
+                    b.Navigation("DoctorUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("IntoGroupDetails")
+                        .HasForeignKey("TrialDetailId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Doctor");
+
+                    b.Navigation("TrialDetail");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
+                        .WithMany("EnrollReadingCategoryList")
+                        .HasForeignKey("EnrollId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Enroll");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
+                        .WithMany("EnrollReadingCriteriaList")
+                        .HasForeignKey("EnrollId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Enroll");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site")
+                        .WithMany()
+                        .HasForeignKey("SiteId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Site");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog")
+                        .WithMany()
+                        .HasForeignKey("PublishLogId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("PublishLog");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.Navigation("CreateUser");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("NoneDicomStudy");
+
+                    b.Navigation("OriginNoneDicomStudy");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo")
+                        .WithMany()
+                        .HasForeignKey("OrganInfoId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("OrganInfo");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PIAudit", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
+                        .WithMany()
+                        .HasForeignKey("VisitTaskId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "LatestReplyUser")
+                        .WithMany()
+                        .HasForeignKey("LatestReplyUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
+                        .WithMany("QCChallengeList")
+                        .HasForeignKey("SubjectVisitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("LatestReplyUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("QCChallenge");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ParentQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingConsistentClinicalData");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("GlobalVisitTask");
+
+                    b.Navigation("TrialReadingQuestion");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TaskMedicalReview");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview")
+                        .WithMany()
+                        .HasForeignKey("TaskMedicalReviewId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TaskMedicalReview");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ParentQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ParentQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("OncologyVisitTask");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingPeriodSet");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage")
+                        .WithMany()
+                        .HasForeignKey("VisitStageId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("VisitStage");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingPeriodSet");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary")
+                        .WithMany()
+                        .HasForeignKey("DictionaryId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Dictionary");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("DependParentQuestion");
+
+                    b.Navigation("ReadingQuestionSystem");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("DependParentQuestion");
+
+                    b.Navigation("ReadingQuestionTrial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ReadingQuestionTrial");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.VisitTask", "VisitTask")
+                        .WithMany()
+                        .HasForeignKey("VisitTaskId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("ReadingQuestionTrial");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
+                        .WithMany()
+                        .HasForeignKey("TaskId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Dictionary");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SCPSeries");
+
+                    b.Navigation("SCPStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SCPStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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")
+                        .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("CreateUser");
+
+                    b.Navigation("Patient");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudySubjectVisit", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
+                        .WithMany("SCPStudySubjectVisitList")
+                        .HasForeignKey("SCPStudyId")
+                        .HasPrincipalKey("Id")
+                        .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("SCPStudySubjectVisitList")
+                        .HasForeignKey("SubjectVisitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("SCPStudy");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital")
+                        .WithMany()
+                        .HasForeignKey("HospitalId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Hospital");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("DicomStudy");
+
+                    b.Navigation("NoneDicomStudy");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("TaskStudy");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubejctVisitDownload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
+                        .WithMany()
+                        .HasForeignKey("SubjectVisitId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingQuestion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Subject");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+
+                    b.Navigation("subject");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Series");
+
+                    b.Navigation("Study");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectPatient", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient")
+                        .WithMany("SubjectPatientList")
+                        .HasForeignKey("PatientId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject")
+                        .WithMany("SubjectPatientList")
+                        .HasForeignKey("SubjectId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Patient");
+
+                    b.Navigation("Subject");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectPatientSCPStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CurrentActionUser")
+                        .WithMany()
+                        .HasForeignKey("CurrentActionUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "ForwardUser")
+                        .WithMany()
+                        .HasForeignKey("ForwardUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit")
+                        .WithMany()
+                        .HasForeignKey("OutPlanPreviousVisitId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "PreliminaryAuditUser")
+                        .WithMany()
+                        .HasForeignKey("PreliminaryAuditUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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.User", "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("CreateUser");
+
+                    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.SubjectVisitClinicalDialog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent")
+                        .WithMany()
+                        .HasForeignKey("ParentId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Parent");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin")
+                        .WithMany()
+                        .HasForeignKey("GroupId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("GroupQuestin");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "ConfirmUser")
+                        .WithMany("SystemDocConfirmedList")
+                        .HasForeignKey("ConfirmUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType")
+                        .WithMany()
+                        .HasForeignKey("FileTypeId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("FileType");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "PublishedUser")
+                        .WithMany()
+                        .HasForeignKey("PublishedUserId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("PublishedUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("NoticeUserType");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "DoctorUser")
+                        .WithMany()
+                        .HasForeignKey("DoctorUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll")
+                        .WithMany()
+                        .HasForeignKey("EnrollId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("DoctorUser");
+
+                    b.Navigation("Enroll");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("InfluenceTask");
+
+                    b.Navigation("OriginalTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TaskSeries");
+
+                    b.Navigation("TaskStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "LatestReplyUser")
+                        .WithMany()
+                        .HasForeignKey("LatestReplyUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "DoctorUser")
+                        .WithMany()
+                        .HasForeignKey("DoctorUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("DoctorUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TaskStudy");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("VisitTask");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.User", "QCQuestionConfirmedUser")
+                        .WithMany()
+                        .HasForeignKey("QCQuestionConfirmedUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode")
+                        .WithMany()
+                        .HasForeignKey("ReviewModeId");
+
+                    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("CreateUser");
+
+                    b.Navigation("IndicationType");
+
+                    b.Navigation("Phase");
+
+                    b.Navigation("QCQuestionConfirmedUser");
+
+                    b.Navigation("ReviewMode");
+
+                    b.Navigation("TrialObjectNameList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialClinicalDataSet");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("GroupQuestin");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion")
+                        .WithMany()
+                        .HasForeignKey("TrialCriterionId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            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.TrialDocConfirmedUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "User")
+                        .WithMany()
+                        .HasForeignKey("ConfirmUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("FileType");
+
+                    b.Navigation("Trial");
+                });
+
+            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.User", "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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("ParentQCQuestion");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure")
+                        .WithMany("TrialQCQuestionAnswerList")
+                        .HasForeignKey("TrialQCQuestionConfigureId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("TrialQCQuestionConfigure");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Site");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("EquipmentType");
+
+                    b.Navigation("TrialSiteSurvey");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "PreliminaryUser")
+                        .WithMany()
+                        .HasForeignKey("PreliminaryUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    b.Navigation("PreliminaryUser");
+
+                    b.Navigation("ReviewerUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialSite");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.User", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialSite");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("TrialSiteSurvey");
+
+                    b.Navigation("UserTypeRole");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUser", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany("TrialUserList")
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "User")
+                        .WithMany("UserTrials")
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.User", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null)
+                        .WithOne("User")
+                        .HasForeignKey("IRaCIS.Core.Domain.Models.User", "DoctorId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole")
+                        .WithMany("UserList")
+                        .HasForeignKey("UserTypeId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("UserTypeRole");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "LoginUser")
+                        .WithMany()
+                        .HasForeignKey("LoginUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "OptUser")
+                        .WithMany()
+                        .HasForeignKey("OptUserId");
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("LoginUser");
+
+                    b.Navigation("OptUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+
+                    b.Navigation("SubjectVisit");
+
+                    b.Navigation("VisitPlanInfluenceStat");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial")
+                        .WithMany()
+                        .HasForeignKey("TrialId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+
+                    b.Navigation("Trial");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "DoctorUser")
+                        .WithMany("VisitTaskList")
+                        .HasForeignKey("DoctorUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "FirstAuditUser")
+                        .WithMany()
+                        .HasForeignKey("FirstAuditUserId");
+
+                    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.User", "LatestReplyUser")
+                        .WithMany()
+                        .HasForeignKey("LatestReplyUserId");
+
+                    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.User", "SubjectCriterionClaimUser")
+                        .WithMany()
+                        .HasForeignKey("SubjectCriterionClaimUserId");
+
+                    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("CreateUser");
+
+                    b.Navigation("DoctorUser");
+
+                    b.Navigation("FirstAuditUser");
+
+                    b.Navigation("JudgeResultTask");
+
+                    b.Navigation("JudgeVisitTask");
+
+                    b.Navigation("LatestReplyUser");
+
+                    b.Navigation("ReadModule");
+
+                    b.Navigation("SourceSubjectVisit");
+
+                    b.Navigation("Subject");
+
+                    b.Navigation("SubjectCriterionClaimUser");
+
+                    b.Navigation("Trial");
+
+                    b.Navigation("TrialReadingCriterion");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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.User", "RequestReReadingConfirmUser")
+                        .WithMany()
+                        .HasForeignKey("RequestReReadingConfirmUserId");
+
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "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("CreateUser");
+
+                    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.User", "CreateUser")
+                        .WithMany()
+                        .HasForeignKey("CreateUserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("CreateUser");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b =>
+                {
+                    b.HasOne("IRaCIS.Core.Domain.Models.User", "CreateUser")
+                        .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("CreateUser");
+                });
+
+            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("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("User")
+                        .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");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b =>
+                {
+                    b.Navigation("DoctorList");
+                });
+
+            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");
+
+                    b.Navigation("SubjectPatientList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b =>
+                {
+                    b.Navigation("SCPInstanceList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b =>
+                {
+                    b.Navigation("InstanceList");
+
+                    b.Navigation("SCPStudySubjectVisitList");
+
+                    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("SubjectPatientList");
+
+                    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("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("SCPStudySubjectVisitList");
+
+                    b.Navigation("StudyList");
+
+                    b.Navigation("SubjectCriteriaEvaluationVisitFilterList");
+
+                    b.Navigation("VisitTaskList");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b =>
+                {
+                    b.Navigation("NeedConfirmedUserTypeList");
+
+                    b.Navigation("SystemDocConfirmedUserList");
+                });
+
+            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("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("TrialReadingCriterionList");
+
+                    b.Navigation("TrialSiteList");
+
+                    b.Navigation("TrialSiteSurveyList");
+
+                    b.Navigation("TrialSiteUserList");
+
+                    b.Navigation("TrialStateChangeList");
+
+                    b.Navigation("TrialUserList");
+
+                    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");
+                });
+
+            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.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.TrialStatusDetail", b =>
+                {
+                    b.Navigation("IntoGroupDetails");
+                });
+
+            modelBuilder.Entity("IRaCIS.Core.Domain.Models.User", b =>
+                {
+                    b.Navigation("SystemDocConfirmedList");
+
+                    b.Navigation("UserTrials");
+
+                    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("ReadingTaskQuestionAnswerList");
+
+                    b.Navigation("TaskInfluenceList");
+
+                    b.Navigation("TaskMedicalReviewList");
+
+                    b.Navigation("TaskNoneDicomStudyFileList");
+
+                    b.Navigation("TaskStudyList");
+
+                    b.Navigation("UserFeedBackList");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.cs
new file mode 100644
index 000000000..f4a45e470
--- /dev/null
+++ b/IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.cs
@@ -0,0 +1,63 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace IRaCIS.Core.Infra.EFCore.Migrations
+{
+    /// <inheritdoc />
+    public partial class RemoveSubjectVisitInfo : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "PackState",
+                table: "SubjectVisit");
+
+            migrationBuilder.DropColumn(
+                name: "VisitImageFileCount",
+                table: "SubjectVisit");
+
+            migrationBuilder.DropColumn(
+                name: "VisitImageZipPath",
+                table: "SubjectVisit");
+
+            migrationBuilder.DropColumn(
+                name: "VisitImageZipSize",
+                table: "SubjectVisit");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<int>(
+                name: "PackState",
+                table: "SubjectVisit",
+                type: "int",
+                nullable: false,
+                defaultValue: 0);
+
+            migrationBuilder.AddColumn<int>(
+                name: "VisitImageFileCount",
+                table: "SubjectVisit",
+                type: "int",
+                nullable: false,
+                defaultValue: 0);
+
+            migrationBuilder.AddColumn<string>(
+                name: "VisitImageZipPath",
+                table: "SubjectVisit",
+                type: "nvarchar(400)",
+                maxLength: 400,
+                nullable: false,
+                defaultValue: "");
+
+            migrationBuilder.AddColumn<long>(
+                name: "VisitImageZipSize",
+                table: "SubjectVisit",
+                type: "bigint",
+                nullable: false,
+                defaultValue: 0L);
+        }
+    }
+}
diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs b/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs
index 002e32db4..b94f41dd5 100644
--- a/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs
+++ b/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs
@@ -8102,11 +8102,26 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
                     b.Property<Guid>("CreateUserId")
                         .HasColumnType("uniqueidentifier");
 
+                    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<bool>("IsSuccess")
+                        .HasColumnType("bit");
+
                     b.Property<Guid>("SubjectVisitId")
                         .HasColumnType("uniqueidentifier");
 
@@ -8801,9 +8816,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
                     b.Property<int>("PDState")
                         .HasColumnType("int");
 
-                    b.Property<int>("PackState")
-                        .HasColumnType("int");
-
                     b.Property<DateTime?>("PreliminaryAuditTime")
                         .HasColumnType("datetime2");
 
@@ -8867,17 +8879,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
                         .HasColumnType("int")
                         .HasComment("0 未执行  1 执行了  2 不可用");
 
-                    b.Property<int>("VisitImageFileCount")
-                        .HasColumnType("int");
-
-                    b.Property<string>("VisitImageZipPath")
-                        .IsRequired()
-                        .HasMaxLength(400)
-                        .HasColumnType("nvarchar(400)");
-
-                    b.Property<long>("VisitImageZipSize")
-                        .HasColumnType("bigint");
-
                     b.Property<string>("VisitName")
                         .IsRequired()
                         .HasMaxLength(400)
@@ -16044,6 +16045,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
                     b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
                         .WithMany("InstanceList")
                         .HasForeignKey("StudyId")
+                        .HasPrincipalKey("Id")
                         .OnDelete(DeleteBehavior.Cascade)
                         .IsRequired();
 
@@ -16139,6 +16141,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
                     b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
                         .WithMany("SCPStudySubjectVisitList")
                         .HasForeignKey("SCPStudyId")
+                        .HasPrincipalKey("Id")
                         .OnDelete(DeleteBehavior.Cascade)
                         .IsRequired();
 
diff --git a/irc_api.drone.yml b/irc_api.drone.yml
index 5fcacf26d..f94a31239 100644
--- a/irc_api.drone.yml
+++ b/irc_api.drone.yml
@@ -1,144 +1,4 @@
-kind: pipeline
-type: ssh
-name: ssh-linux-uat-irc-build-image
 
-platform:
-  os: Linux
-  arch: 386
-  
-clone:
-  disable: true
-
-server:
-  host: 47.117.164.182
-  user: root
-  password:
-    from_secret: test_ssh_pwd
-
-steps:
-- name: build-uat-irc
-  commands:
-  - cd /opt/1panel/xc-deploy/Uat_IRC/devops-build-publish/Uat-To-Uat
-  - sh uat-branch-latest-build-image-publish.sh  v${DRONE_BUILD_NUMBER}
-  
-trigger:
-  branch:
-    - Uat_IRC_Net8    
-       
----
-kind: pipeline
-type: ssh
-name: ssh-linux-test-irc-publish
-
-platform:
-  os: Linux
-  arch: 386
-  
-clone:
-  disable: true
-
-server:
-  host: 106.14.89.110
-  user: root
-  password:
-    from_secret: test_ssh_pwd
-
-steps:
-- name: publish-test-irc
-  commands:
-  - cd /opt/1panel/xc-deploy/Test_IRC/devops-build-publish;sh test-irc-update-or-create-stack.sh v${DRONE_BUILD_NUMBER}
-  
-trigger:
-  branch:
-    - Test_IRC_Net8    
-    
----
-kind: pipeline
-type: ssh
-name: ssh-linux-test-irc-scp-publish
-
-platform:
-  os: Linux
-  arch: 386
-  
-clone:
-  disable: true
-
-server:
-  host: 106.14.89.110
-  user: root
-  password:
-    from_secret: test_ssh_pwd
-
-steps:
-- name: publish-test-irc-scp
-  commands:
-  - cd /opt/1panel/xc-deploy/Test_IRC_SCP/devops-build-publish;sh pull-build-test-irc-scp-image.sh v${DRONE_BUILD_NUMBER}
-  - cd /opt/1panel/xc-deploy/Test_IRC_SCP ;sh  update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
-  
-trigger:
-  branch:
-    - Test_IRC_Net8—_SCP_Disable    
-       
----
-kind: pipeline
-type: ssh
-name: ssh-linux-test-study-publish
-
-platform:
-  os: Linux
-  arch: 386
-
-clone:
-  disable: true  #禁用默认克隆
-  
-server:
-  host: 106.14.89.110
-  user: root
-  password:
-    from_secret: test_ssh_pwd
-  
-steps:
-- name: publish-test-study
-  commands:
-  - cd /opt/1panel/xc-deploy/Test_Study/devops-build-publish ; sh pull-build-test-study-image.sh v${DRONE_BUILD_NUMBER}
-  - cd /opt/1panel/xc-deploy/Test_Study ;sh  update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
-  
-trigger:
-  branch:
-    - Test_Study_Net8  
-
----
-kind: pipeline
-type: ssh
-name: ssh-linux-test-scp-publish
-
-platform:
-  os: Linux
-  arch: 386
-
-clone:
-  disable: true  #禁用默认克隆
-  
-server:
-  host: 106.14.89.110
-  user: root
-  password:
-    from_secret: test_ssh_pwd
-  
-steps:
-- name: publish-test-hir-scp
-  commands:
-  - cd /opt/1panel/xc-deploy/Test_HIR_SCP/devops-build-publish;sh pull-build-test-hir-scp-image.sh v${DRONE_BUILD_NUMBER}
-  - cd /opt/1panel/xc-deploy/Test_HIR_SCP ;sh  update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
-trigger:
-  branch:
-    - Test_HIR
-    
-
----
-
-      
 kind: pipeline
 type: ssh
 name: ssh-linux-test-hir-publish
@@ -146,23 +6,54 @@ name: ssh-linux-test-hir-publish
 platform:
   os: Linux
   arch: 386
-
-clone:
-  disable: true  #禁用默认克隆
   
+clone:
+  disable: true
+
 server:
   host: 106.14.89.110
   user: root
   password:
     from_secret: test_ssh_pwd
-  
+
 steps:
 - name: publish-test-hir
   commands:
-  - cd /opt/1panel/xc-deploy/Test_HIR/devops-build-publish;sh pull-build-test-hir-image.sh v${DRONE_BUILD_NUMBER}
-  - cd /opt/1panel/xc-deploy/Test_HIR ; sh update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER} 
+  - cd /opt/1panel/xc-deploy/Test_HIR_New/devops-build-publish;sh test_hir_net8.sh 
+  
 trigger:
   branch:
-    - Test_HIR
+    - Test_HIR_Net8    
     
+---
+kind: pipeline
+type: ssh
+name: ssh-linux-test-hir-scp-publish
+
+platform:
+  os: Linux
+  arch: 386
+  
+clone:
+  disable: true
+
+server:
+  host: 106.14.89.110
+  user: root
+  password:
+    from_secret: test_ssh_pwd
+
+steps:
+- name: publish-test-hir-scp
+  commands:
+  - cd /opt/1panel/xc-deploy/Test_HIR_SCP_New/devops-build-publish;sh test_hir_scp_net8.sh
+  
+trigger:
+  branch:
+    - Test_HIR_Net8
+       
+
+    
+
+
     
\ No newline at end of file