diff --git a/IRC.Core.SCP/Service/CStoreSCPService.cs b/IRC.Core.SCP/Service/CStoreSCPService.cs index 224d2ca24..e7c4f18f9 100644 --- a/IRC.Core.SCP/Service/CStoreSCPService.cs +++ b/IRC.Core.SCP/Service/CStoreSCPService.cs @@ -8,6 +8,7 @@ using IRaCIS.Core.Infra.EFCore; using IRaCIS.Core.Infrastructure; using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.SCP.Service; +using MassTransit; using Medallion.Threading; using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal; using Microsoft.Extensions.DependencyInjection; @@ -95,7 +96,7 @@ namespace IRaCIS.Core.SCP.Service public Task OnReceiveAssociationRequestAsync(DicomAssociation association) { - _upload = new SCPImageUpload() { StartTime = DateTime.Now, CallingAE = association.CallingAE, CalledAE = association.CalledAE, CallingAEIP = association.RemoteHost }; + _upload = new SCPImageUpload() { Id = NewId.NextSequentialGuid(), StartTime = DateTime.Now, CallingAE = association.CallingAE, CalledAE = association.CalledAE, CallingAEIP = association.RemoteHost }; Log.Logger.Warning($"接收到来自{association.CallingAE}的连接"); @@ -540,12 +541,12 @@ namespace IRaCIS.Core.SCP.Service //保留原始偏移表 - if (originOffsetTable.Count == pixelData.NumberOfFrames) - { - newFragments.OffsetTable.AddRange(originOffsetTable.ToArray()); + //if (originOffsetTable.Count == pixelData.NumberOfFrames) + //{ + // newFragments.OffsetTable.AddRange(originOffsetTable.ToArray()); - } - else + //} + //else { newFragments.OffsetTable.AddRange(bot.ToArray()); @@ -644,7 +645,7 @@ namespace IRaCIS.Core.SCP.Service ms.Position = 0; //irc 从路径最后一截取Guid - storeRelativePath = await ossService.UploadToOSSAsync(ms, ossFolderPath, instanceId.ToString(), false, uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = _trialId, BatchDataType = BatchDataType.PACSReceive }); + storeRelativePath = await ossService.UploadToOSSAsync(ms, ossFolderPath, instanceId.ToString(), false, uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = _trialId, BatchDataType = BatchDataType.PACSReceive, UploadBatchId = _upload.Id.ToString() }); fileSize = ms.Length; @@ -674,7 +675,7 @@ namespace IRaCIS.Core.SCP.Service // 上传缩略图到 OSS - var seriesPath = await ossService.UploadToOSSAsync(memoryStream, ossFolderPath, $"{seriesId.ToString()}_{instanceId.ToString()}.preview.jpg", false,uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = _trialId, BatchDataType = BatchDataType.PACSReceive }); + var seriesPath = await ossService.UploadToOSSAsync(memoryStream, ossFolderPath, $"{seriesId.ToString()}_{instanceId.ToString()}.preview.jpg", false, uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = _trialId, BatchDataType = BatchDataType.PACSReceive }); series.ImageResizePath = seriesPath; diff --git a/IRC.Core.SCP/Service/FileUploadRecordService.cs b/IRC.Core.SCP/Service/FileUploadRecordService.cs index 3d4ff7880..cc5affc4d 100644 --- a/IRC.Core.SCP/Service/FileUploadRecordService.cs +++ b/IRC.Core.SCP/Service/FileUploadRecordService.cs @@ -63,6 +63,8 @@ public class FileUploadRecordAddOrEdit public bool? IsNeedSync { get; set; } public string UploadRegion { get; set; } public string TargetRegion { get; set; } + + public bool? IsSync { get; set; } } public interface IFileUploadRecordService { @@ -113,6 +115,19 @@ public class FileUploadRecordService(IRepository _fileUploadRe } } + //SCP推送过来IP为空,后端归档的,设置区域 + if (_userInfo.IP.IsNullOrEmpty() && _userInfo.Domain.IsNullOrEmpty()) + { + var apiDefalut = ObjectStoreServiceConfig.SyncConfigList.FirstOrDefault(t => t.UploadRegion == ObjectStoreServiceConfig.ApiDeployRegion); + + if (apiDefalut != null) + { + addOrEditFileUploadRecord.UploadRegion = apiDefalut.UploadRegion; + addOrEditFileUploadRecord.TargetRegion = apiDefalut.TargetRegion; + + } + } + if (addOrEditFileUploadRecord.TrialId != null) { @@ -129,9 +144,9 @@ public class FileUploadRecordService(IRepository _fileUploadRe { addOrEditFileUploadRecord.IsNeedSync = true; - addOrEditFileUploadRecord.Priority = 0; - + addOrEditFileUploadRecord.Priority = addOrEditFileUploadRecord.Priority ?? 0; + addOrEditFileUploadRecord.IsSync = false; } else { @@ -147,7 +162,9 @@ public class FileUploadRecordService(IRepository _fileUploadRe //系统文件,默认同步 addOrEditFileUploadRecord.IsNeedSync = true; - addOrEditFileUploadRecord.Priority = 0; + addOrEditFileUploadRecord.IsSync = false; + + addOrEditFileUploadRecord.Priority = addOrEditFileUploadRecord.Priority ?? 0; } var entity = await _fileUploadRecordRepository.InsertOrUpdateAsync(addOrEditFileUploadRecord, true); diff --git a/IRC.Core.SCP/Service/OSSService.cs b/IRC.Core.SCP/Service/OSSService.cs index 7657d8c51..35e58939d 100644 --- a/IRC.Core.SCP/Service/OSSService.cs +++ b/IRC.Core.SCP/Service/OSSService.cs @@ -194,7 +194,7 @@ public interface IOSSService List GetRootFolderNames(); - public ObjectStoreDTO GetObjectStoreTempToken(string? domain = null, bool? isGetAllTempToken = null); + public ObjectStoreDTO GetObjectStoreTempToken(string? domain = null, bool? isGetAllTempToken = null, string? objectUse = null); public Task MoveObject(string sourcePath, string destPath, bool overwrite = true); @@ -825,10 +825,12 @@ public class OSSService(IOptionsMonitor options, if (ObjectStoreServiceOptions.IsOpenStoreSync && uploadInfo != null) { + var fileType = Path.GetExtension(returnPath).TrimStart('.'); + uploadInfo.FileSize = fileStream.CanSeek ? fileStream.Length : 0; uploadInfo.Path = returnPath; uploadInfo.FileName = fileRealName; - uploadInfo.FileType = Path.GetExtension(returnPath); + uploadInfo.FileType = fileType.IsNullOrEmpty()?"dcm": fileType; await _fileUploadRecordService.AddOrUpdateFileUploadRecord(uploadInfo); @@ -964,10 +966,14 @@ public class OSSService(IOptionsMonitor options, if (ObjectStoreServiceOptions.IsOpenStoreSync && uploadInfo != null) { + + var fileType = Path.GetExtension(returnPath).TrimStart('.'); + uploadInfo.FileSize = fileSize; uploadInfo.Path = returnPath; uploadInfo.FileName = Path.GetFileName(localFilePath); - uploadInfo.FileType = Path.GetExtension(returnPath); + uploadInfo.FileType = fileType.IsNullOrEmpty() ? "dcm" : fileType; + await _fileUploadRecordService.AddOrUpdateFileUploadRecord(uploadInfo); @@ -1856,23 +1862,39 @@ public class OSSService(IOptionsMonitor options, - public ObjectStoreDTO GetObjectStoreTempToken(string? domain = null, bool? isGetAllTempToken = null) + public ObjectStoreDTO GetObjectStoreTempToken(string? domain = null, bool? isGetAllTempToken = null, string? objectUse = null) { - //如果传递了域名,并且打开了存储同步,根据域名使用的具体存储覆盖之前的配置,否则就用固定的配置 - if (ObjectStoreServiceOptions.IsOpenStoreSync && domain.IsNotNullOrEmpty()) + string objectStoreUse = string.Empty; + //使用指定配置 + if (objectUse != null) { - var userDomain = domain?.Trim(); - - var find = ObjectStoreServiceOptions.SyncConfigList.FirstOrDefault(t => t.Domain == userDomain); - if (find != null) + objectStoreUse = objectUse?.Trim() ?? string.Empty; + } + //根据域名动态判断 + else + { + //如果传递了域名,并且打开了存储同步,根据域名使用的具体存储覆盖之前的配置,否则就用固定的配置 + if (ObjectStoreServiceOptions.IsOpenStoreSync && domain.IsNotNullOrEmpty() && ObjectStoreServiceOptions.SyncConfigList.Any(t => t.Domain == domain)) { - ObjectStoreServiceOptions.ObjectStoreUse = find.Primary; + + var find = ObjectStoreServiceOptions.SyncConfigList.FirstOrDefault(t => t.Domain == domain); + if (find != null) + { + objectStoreUse = find.Primary; + } + + } + else + { + //兜底,如果是本地测试环境,那就使用部署默认配置 + objectStoreUse = ObjectStoreServiceOptions.ObjectStoreUse; } } - var objectStoreDTO = new ObjectStoreDTO() { ObjectStoreUse = ObjectStoreServiceOptions.ObjectStoreUse, IsOpenStoreSync = ObjectStoreServiceOptions.IsOpenStoreSync, SyncConfigList = ObjectStoreServiceOptions.SyncConfigList }; - if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS" || isGetAllTempToken == true) + var objectStoreDTO = new ObjectStoreDTO() { ObjectStoreUse = objectStoreUse, IsOpenStoreSync = ObjectStoreServiceOptions.IsOpenStoreSync, SyncConfigList = ObjectStoreServiceOptions.SyncConfigList }; + + if (objectStoreUse == "AliyunOSS" || isGetAllTempToken == true) { var ossOptions = ObjectStoreServiceOptions.AliyunOSS; @@ -1920,11 +1942,11 @@ public class OSSService(IOptionsMonitor options, objectStoreDTO.AliyunOSS = tempToken; } - else if (ObjectStoreServiceOptions.ObjectStoreUse == "MinIO") + if (objectStoreUse == "MinIO") { objectStoreDTO.MinIO = ObjectStoreServiceOptions.MinIO; } - else if (ObjectStoreServiceOptions.ObjectStoreUse == "AWS" || isGetAllTempToken == true) + if (objectStoreUse == "AWS" || isGetAllTempToken == true) { var awsOptions = ObjectStoreServiceOptions.AWS; @@ -1969,7 +1991,8 @@ public class OSSService(IOptionsMonitor options, objectStoreDTO.AWS = tempToken; } - else + + if (objectStoreUse.IsNullOrEmpty()) { throw new BusinessValidationFailedException("未定义的存储介质类型"); } @@ -1980,7 +2003,7 @@ public class OSSService(IOptionsMonitor options, public async Task SyncFileAsync(string objectKey, ObjectStoreUse source, ObjectStoreUse destination, CancellationToken ct = default) { - GetObjectStoreTempToken(isGetAllTempToken: true); + var tempConfig = GetObjectStoreTempToken(isGetAllTempToken: true); var aliConfig = ObjectStoreServiceOptions.AliyunOSS; @@ -1999,36 +2022,76 @@ public class OSSService(IOptionsMonitor options, var amazonS3Client = new AmazonS3Client(credentials, clientConfig); + // ⭐ 关键变量 + IDisposable? owner = null; + Stream sourceStream; + long contentLength; - // 根据源选择流式下载 - Stream sourceStream = source switch + // ========= 获取流 + 长度 ========= + switch (source) { - ObjectStoreUse.AliyunOSS => _ossClient.GetObject(aliConfig.BucketName, objectKey).Content, - ObjectStoreUse.AWS => (await amazonS3Client.GetObjectAsync(awsConfig.BucketName, objectKey, ct)).ResponseStream, - _ => throw new BusinessValidationFailedException("未定义的同步类型") - }; + case ObjectStoreUse.AliyunOSS: + { - if (source == ObjectStoreUse.AliyunOSS) + var obj = _ossClient.GetObject( + aliConfig.BucketName, + objectKey); + + owner = obj; + sourceStream = obj.Content; + contentLength = obj.ContentLength; + break; + } + + case ObjectStoreUse.AWS: + { + var response = await amazonS3Client.GetObjectAsync( + awsConfig.BucketName, + objectKey, + ct); + + owner = response; + sourceStream = response.ResponseStream; + contentLength = response.Headers.ContentLength; + break; + } + + default: + throw new BusinessValidationFailedException("未定义的同步类型"); + } + + try { - var putRequest = new Amazon.S3.Model.PutObjectRequest + // ========= 上传 ========= + if (destination == ObjectStoreUse.AWS) { - BucketName = awsConfig.BucketName, - Key = objectKey, - InputStream = sourceStream - }; + var putRequest = new Amazon.S3.Model.PutObjectRequest + { + BucketName = awsConfig.BucketName, + Key = objectKey, + InputStream = sourceStream, + Headers = { ContentLength = contentLength } + }; - await amazonS3Client.PutObjectAsync(putRequest, ct); + await amazonS3Client.PutObjectAsync(putRequest, ct); + } + else if (destination == ObjectStoreUse.AliyunOSS) + { + _ossClient.PutObject( + aliConfig.BucketName, + objectKey, + sourceStream); + } + else + { + throw new BusinessValidationFailedException("未定义的同步类型"); + } } - else if (source == ObjectStoreUse.AWS) + finally { - _ossClient.PutObject(aliConfig.BucketName, objectKey, sourceStream); + // ⭐⭐⭐ 真正释放 HTTP 连接 + owner?.Dispose(); } - else - { - throw new BusinessValidationFailedException("未定义的同步类型"); - } - - await sourceStream.DisposeAsync(); // 释放流 } } diff --git a/IRC.Core.SCP/Service/_MapConfig.cs b/IRC.Core.SCP/Service/_MapConfig.cs new file mode 100644 index 000000000..d61e18c25 --- /dev/null +++ b/IRC.Core.SCP/Service/_MapConfig.cs @@ -0,0 +1,16 @@ +using AutoMapper; +using IRaCIS.Core.Domain.Models; +using IRaCIS.Core.SCP.Service; + + +namespace IRaCIS.Core.Application.Service +{ + public class CommonConfig : Profile + { + public CommonConfig() + { + CreateMap().ReverseMap(); + } + } + +} diff --git a/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json b/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json index 9d7cf60ac..0dc1d3616 100644 --- a/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json +++ b/IRC.Core.SCP/appsettings.Prod_IRC_SCP.json @@ -8,6 +8,26 @@ }, "ObjectStoreService": { "ObjectStoreUse": "AliyunOSS", + "IsOpenStoreSync": true, + "ApiDeployRegion": "CN", + "SyncConfigList": [ + { + "Domain": "irc.extimaging.com", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "eiirc.extimaging.com", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], "AliyunOSS": { "RegionId": "cn-shanghai", "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", @@ -19,6 +39,18 @@ "ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com", "Region": "oss-cn-shanghai", "DurationSeconds": 7200 + }, + + "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-irc-store", + "ViewEndpoint": "https://ei-med-s3-irc-store.s3.amazonaws.com", + "DurationSeconds": 7200 } }, diff --git a/IRC.Core.SCP/appsettings.Test_IRC_SCP.json b/IRC.Core.SCP/appsettings.Test_IRC_SCP.json index 022a47cd3..289de42a4 100644 --- a/IRC.Core.SCP/appsettings.Test_IRC_SCP.json +++ b/IRC.Core.SCP/appsettings.Test_IRC_SCP.json @@ -7,7 +7,28 @@ } }, "ObjectStoreService": { + // 使用的对象存储服务类型 "ObjectStoreUse": "AliyunOSS", + "IsOpenStoreSync": true, + "ApiDeployRegion": "CN", + "SyncConfigList": [ + { + "Domain": "irc.test.extimaging.com", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "lili.test.extimaging.com", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], "AliyunOSS": { "RegionId": "cn-shanghai", "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", @@ -29,6 +50,27 @@ "secretKey": "TzgvyA3zGXMUnpilJNUlyMYHfosl1hBMl6lxPmjy", "bucketName": "hir-test", "viewEndpoint": "http://106.14.89.110:9001/hir-test/" + }, + // AWS S3 对象存储服务的配置 + "AWS": { + // AWS S3 的Region + "Region": "us-east-1", + // AWS S3 的内部访问端点 + "EndPoint": "s3.us-east-1.amazonaws.com", + // 是否使用 SSL + "UseSSL": true, + // AWS S3 的角色 ARN + "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access", + // AWS S3 的访问密钥 ID + "AccessKeyId": "AKIAW3MEAFJX7IPXISP4", + // AWS S3 的访问密钥 Secret + "SecretAccessKey": "Pgrg3le5jPxZQ7MR1yYNS30J0XRyJeKVyIIjElXc", + // AWS S3 的Bucket名称 + "BucketName": "ei-med-s3-lili-uat-store", + // AWS S3 的访问端点 + "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com", + // AWS S3 的持续数秒 + "DurationSeconds": 7200 } }, diff --git a/IRC.Core.SCP/appsettings.US_Prod_SCP.json b/IRC.Core.SCP/appsettings.US_Prod_SCP.json index b440d05b6..1dd6ae4d0 100644 --- a/IRC.Core.SCP/appsettings.US_Prod_SCP.json +++ b/IRC.Core.SCP/appsettings.US_Prod_SCP.json @@ -8,6 +8,38 @@ }, "ObjectStoreService": { "ObjectStoreUse": "AWS", + "IsOpenStoreSync": true, + "ApiDeployRegion": "US", + "SyncConfigList": [ + { + "Domain": "eilili.elevateimaging.ai", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "lili.elevateimaging.ai", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], + "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-lili-store", + "ViewEndpoint": "https://zy-lili-cache.oss-cn-shanghai.aliyuncs.com", + "Region": "oss-cn-shanghai", + "DurationSeconds": 7200 + }, "AWS": { "Region": "us-east-1", "EndPoint": "s3.us-east-1.amazonaws.com", diff --git a/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json b/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json index e7d327ed3..d42722a6d 100644 --- a/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json +++ b/IRC.Core.SCP/appsettings.Uat_IRC_SCP.json @@ -8,17 +8,58 @@ }, "ObjectStoreService": { "ObjectStoreUse": "AliyunOSS", + "IsOpenStoreSync": true, + "ApiDeployRegion": "CN", + "SyncConfigList": [ + { + "Domain": "irc.uat.extimaging.com", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "lili.uat.extimaging.com", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], "AliyunOSS": { "RegionId": "cn-shanghai", "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", "EndPoint": "https://oss-cn-shanghai.aliyuncs.com", - "AccessKeyId": "LTAI5tFUCCmz5TwghZHsj45Y", - "AccessKeySecret": "8evrBy1fVfzJG25i67Jm0xqn9Xcw2T", - "RoleArn": "acs:ram::1078130221702011:role/uat-oss-access", - "BucketName": "tl-med-irc-uat-store", - "ViewEndpoint": "https://tl-med-irc-uat-store.oss-cn-shanghai.aliyuncs.com", + "AccessKeyId": "LTAI5tRRZehUp2V9pyTPtAJm", + "AccessKeySecret": "FLizxkHsMm4CGYHtkV8E3PNJJZU7oV", + "RoleArn": "acs:ram::1899121822495495:role/dev-oss-access", + "BucketName": "zy-irc-test-store", + "ViewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com", "Region": "oss-cn-shanghai", "DurationSeconds": 7200 + }, + // AWS S3 对象存储服务的配置 + "AWS": { + // AWS S3 的Region + "Region": "us-east-1", + // AWS S3 的内部访问端点 + "EndPoint": "s3.us-east-1.amazonaws.com", + // 是否使用 SSL + "UseSSL": true, + // AWS S3 的角色 ARN + "RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access", + // AWS S3 的访问密钥 ID + "AccessKeyId": "AKIAW3MEAFJX7IPXISP4", + // AWS S3 的访问密钥 Secret + "SecretAccessKey": "Pgrg3le5jPxZQ7MR1yYNS30J0XRyJeKVyIIjElXc", + // AWS S3 的Bucket名称 + "BucketName": "ei-med-s3-lili-uat-store", + // AWS S3 的访问端点 + "ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com", + // AWS S3 的持续数秒 + "DurationSeconds": 7200 } }, "ConnectionStrings": { diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index ea15e396d..ac736ba14 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -847,7 +847,7 @@ namespace IRaCIS.Core.API.Controllers throw new BusinessValidationFailedException(_localizer["UploadDownLoad_TemplateUploadData"]); } - var ossRelativePath = await oSSService.UploadToOSSAsync(fileStream, $"{trialId.ToString()}/InspectionUpload/SiteSurvey", realFileName, uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = trialId ,BatchDataType=BatchDataType.SiteUserSurvey}); + var ossRelativePath = await oSSService.UploadToOSSAsync(fileStream, $"{trialId.ToString()}/InspectionUpload/SiteSurvey", realFileName, uploadInfo: new FileUploadRecordAddOrEdit() { TrialId = trialId, BatchDataType = BatchDataType.SiteUserSurvey }); await _inspectionFileRepository.AddAsync(new InspectionFile() { FileName = realFileName, RelativePath = ossRelativePath, TrialId = trialId }, true); @@ -923,7 +923,7 @@ namespace IRaCIS.Core.API.Controllers } //处理好 用户类型 和用户类型枚举 var sysUserTypeList = _usertypeRepository.Where(t => t.UserTypeEnum == UserTypeEnum.CRA || t.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => new { UserTypeId = t.Id, t.UserTypeEnum }).ToList(); - var siteList = _trialSiteRepository.Where(t => t.TrialId == trialId && siteCodeList.Contains(t.TrialSiteCode)).Select(t => new { t.TrialSiteCode, TrialSiteId = t.Id }).ToList(); + var siteList = _trialSiteRepository.Where(t => t.TrialId == trialId && siteCodeList.Contains(t.TrialSiteCode)).Select(t => new { t.TrialSiteCode, TrialSiteId = t.Id, t.Country }).ToList(); foreach (var item in excelList) { @@ -945,6 +945,8 @@ namespace IRaCIS.Core.API.Controllers } item.TrialSiteId = siteList.FirstOrDefault(t => t.TrialSiteCode.Trim().ToUpper() == item.TrialSiteCode.Trim().ToUpper()).TrialSiteId; + + item.Country = siteList.FirstOrDefault(t => t.TrialSiteCode.Trim().ToUpper() == item.TrialSiteCode.Trim().ToUpper()).Country; } var list = excelList.Where(t => t.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || t.UserTypeEnum == UserTypeEnum.CRA).ToList(); diff --git a/IRaCIS.Core.API/Progranm.cs b/IRaCIS.Core.API/Progranm.cs index fd0d958f1..2b7576d98 100644 --- a/IRaCIS.Core.API/Progranm.cs +++ b/IRaCIS.Core.API/Progranm.cs @@ -1,4 +1,5 @@ -using IRaCIS.Core.API; +using FellowOakDicom; +using IRaCIS.Core.API; using IRaCIS.Core.API.HostService; using IRaCIS.Core.Application.BusinessFilter; using IRaCIS.Core.Application.BusinessFilter.LegacyController.Database.Api; @@ -64,7 +65,8 @@ SerilogExtension.AddSerilogSetup(enviromentName); var builder = WebApplication.CreateBuilder(new WebApplicationOptions { - EnvironmentName = enviromentName + EnvironmentName = enviromentName, + Args = args }); #region 主机配置 @@ -178,6 +180,7 @@ var env = app.Environment; #region 配置中间件 +DicomSetupBuilder.UseServiceProvider(app.Services); app.UseMiddleware(); diff --git a/IRaCIS.Core.API/Properties/launchSettings.json b/IRaCIS.Core.API/Properties/launchSettings.json index d3e1c91fe..3238a6f17 100644 --- a/IRaCIS.Core.API/Properties/launchSettings.json +++ b/IRaCIS.Core.API/Properties/launchSettings.json @@ -33,11 +33,11 @@ }, "applicationUrl": "http://0.0.0.0:6100" }, - "IRaCIS.Event_IRC": { + "IRaCIS.Prod_Event_IRC": { "commandName": "Project", "launchBrowser": true, "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Event_IRC" + "ASPNETCORE_ENVIRONMENT": "Prod_Event_IRC" }, "applicationUrl": "http://0.0.0.0:6100" }, diff --git a/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs index c32dbd4c6..1039fa735 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/DicomSetup.cs @@ -8,13 +8,21 @@ namespace IRaCIS.Core.API { public static void AddDicomSetup(this IServiceCollection services) { + + // ⭐ 先做全局 DICOM 配置 new DicomSetupBuilder() - .RegisterServices(s => s.AddFellowOakDicom() - .AddTranscoderManager() - .AddImageManager() - ) - .SkipValidation() - .Build(); + .SkipValidation() // 👈 在这里设置 + .Build(); + + services.AddFellowOakDicom().AddTranscoderManager().AddImageManager(); + + // new DicomSetupBuilder() + // .RegisterServices(s => s.AddFellowOakDicom() + //.AddTranscoderManager() + // .AddImageManager() + // ) + // .SkipValidation() + // .Build(); } } } diff --git a/IRaCIS.Core.API/_ServiceExtensions/SerilogSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/SerilogSetup.cs index 99ec49653..6706cc580 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/SerilogSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/SerilogSetup.cs @@ -46,19 +46,19 @@ namespace IRaCIS.Core.API var emailConfig = new SystemEmailSendConfig(); configuration.GetSection("SystemEmailSendConfig").Bind(emailConfig); - if (emailConfig.IsOpenErrorNoticeEmail) - { - config.WriteTo.Email(options: new Serilog.Sinks.Email.EmailSinkOptions() - { - From = emailConfig.FromEmail, - To = emailConfig.ErrorNoticeEmailList, - Host = emailConfig.Host, - Port = emailConfig.Port, - Subject = new MessageTemplateTextFormatter("Log Alert - 系统发生了异常,请核查"), - Credentials = new NetworkCredential(emailConfig.FromEmail, emailConfig.AuthorizationCode) + //if (emailConfig.IsOpenErrorNoticeEmail) + //{ + // config.WriteTo.Email(options: new Serilog.Sinks.Email.EmailSinkOptions() + // { + // From = emailConfig.FromEmail, + // To = emailConfig.ErrorNoticeEmailList, + // Host = emailConfig.Host, + // Port = emailConfig.Port, + // Subject = new MessageTemplateTextFormatter("Log Alert - 系统发生了异常,请核查"), + // Credentials = new NetworkCredential(emailConfig.FromEmail, emailConfig.AuthorizationCode) - }, restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Error); - } + // }, restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Error); + //} #endregion Log.Logger = config.CreateLogger(); diff --git a/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json b/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json index 0b331df4b..47936737a 100644 --- a/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json +++ b/IRaCIS.Core.API/appsettings.Prod_Event_IRC.json @@ -7,8 +7,10 @@ } }, "ConnectionStrings": { - "RemoteNew": "Server=101.132.253.119,1435;Database=irc_Prpd_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true", - "Hangfire": "Server=101.132.253.119,1435;Database=irc_Hangfire_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true" + "RemoteNew": "Server=101.132.193.237,1433;Database=Prod_IRC_pidr_restore;User ID=sa;Password=xc@123456;TrustServerCertificate=true", + "Hangfire": "Server=101.132.193.237,1433;Database=irc_Hangfire_bak;User ID=sa;Password=xc@123456;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" }, "WeComNoticeConfig": { "IsOpenWeComNotice": true, @@ -17,48 +19,51 @@ "VueNoticeUserList": [ "wangxiaoshuang", "6b7717a31647293621b97b96f74e6f3d" ] }, "ObjectStoreService": { - "ObjectStoreUse": "AliyunOSS", - + "IsOpenStoreSync": true, + "ApiDeployRegion": "CN", + "SyncConfigList": [ + { + "Domain": "irc.extimaging.com", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "eiirc.extimaging.com", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], "AliyunOSS": { "RegionId": "cn-shanghai", "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", "EndPoint": "https://oss-cn-shanghai.aliyuncs.com", - "AccessKeyId": "LTAI5tFUCCmz5TwghZHsj45Y", - "AccessKeySecret": "8evrBy1fVfzJG25i67Jm0xqn9Xcw2T", - "RoleArn": "acs:ram::1078130221702011:role/uat-oss-access", - "BucketName": "tl-med-irc-event-store", - "ViewEndpoint": "https://tl-med-irc-event-store.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": "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/", + "RoleArn": "arn:aws:iam::471112624751:role/lili_s3_access", + "AccessKeyId": "AKIAW3MEAFJXZ2TZK7GM", + "SecretAccessKey": "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", + "BucketName": "ei-med-s3-irc-store", + "ViewEndpoint": "https://ei-med-s3-irc-store.s3.amazonaws.com", "DurationSeconds": 7200 } }, - "BasicSystemConfig": { // 启用质控风险控制功能 "QCRiskControl": true, @@ -67,7 +72,6 @@ "OpenLoginLimit": true, "LoginMaxFailCount": 5, - "LoginFailLockMinutes": 30, "AutoLoginOutMinutes": 120, @@ -82,17 +86,17 @@ "TemplateType": 2, //MFA免验证发送天数 "UserMFAVerifyMinutes": 1440 - }, + "SystemEmailSendConfig": { "Port": 465, "Host": "smtp.qiye.aliyun.com", "Imap": "imap.qiye.aliyun.com", "ImapPort": 993, - "FromEmail": "uat@extimaging.com", - "FromName": "Uat IRC Imaging System", - "AuthorizationCode": "SHzyyl2021", - "SiteUrl": "http://irc.uat.extimaging.com/login", + "FromEmail": "irc@extimaging.com", + "FromName": "IRC Imaging System", + "AuthorizationCode": "ExtImg@2022", + "SiteUrl": "http://irc.extimaging.com/login", "PlatformName": "EICS", "PlatformNameCN": "展影云平台", @@ -104,15 +108,12 @@ "CompanyShortName": "Extensive Imaging", "CompanyShortNameCN": "展影医疗", "IsEnv_US": false, - "IsOpenErrorNoticeEmail": false, "EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "CronEmailDefaultCulture": "zh-CN", - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + "CronEmailDefaultCulture": "zh-CN" }, - "SystemPacsConfig": { - "Port": "11116", - "IP": "101.132.253.119" + "Port": "11113", + "IP": "101.132.193.237" }, "RequestDuplicationOptions": { "IsEnabled": true, @@ -121,5 +122,4 @@ "ExcludedPaths": [ ] } - } diff --git a/IRaCIS.Core.API/appsettings.Prod_IRC.json b/IRaCIS.Core.API/appsettings.Prod_IRC.json index 5d8bb58bb..6db9321dc 100644 --- a/IRaCIS.Core.API/appsettings.Prod_IRC.json +++ b/IRaCIS.Core.API/appsettings.Prod_IRC.json @@ -20,6 +20,26 @@ }, "ObjectStoreService": { "ObjectStoreUse": "AliyunOSS", + "IsOpenStoreSync": true, + "ApiDeployRegion": "CN", + "SyncConfigList": [ + { + "Domain": "irc.extimaging.com", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "eiirc.extimaging.com", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], "AliyunOSS": { "RegionId": "cn-shanghai", "InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com", @@ -32,13 +52,16 @@ "Region": "oss-cn-shanghai", "DurationSeconds": 7200 }, - "MinIO": { - "endpoint": "http://192.168.3.68", - "port": "8001", - "useSSL": false, - "accessKey": "IDFkwEpWej0b4DtiuThL", - "secretKey": "Lhuu83yMhVwu7c1SnjvGY6lq74jzpYqifK6Qtj4h", - "bucketName": "test" + "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-irc-store", + "ViewEndpoint": "https://ei-med-s3-irc-store.s3.amazonaws.com", + "DurationSeconds": 7200 } }, "BasicSystemConfig": { @@ -85,10 +108,8 @@ "CompanyShortName": "Extensive Imaging", "CompanyShortNameCN": "展影医疗", "IsEnv_US": false, - "IsOpenErrorNoticeEmail": false, "EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "CronEmailDefaultCulture": "zh-CN", - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + "CronEmailDefaultCulture": "zh-CN" }, "SystemPacsConfig": { "Port": "11113", diff --git a/IRaCIS.Core.API/appsettings.Test_IRC.json b/IRaCIS.Core.API/appsettings.Test_IRC.json index f8ddeda2f..3e3eea57b 100644 --- a/IRaCIS.Core.API/appsettings.Test_IRC.json +++ b/IRaCIS.Core.API/appsettings.Test_IRC.json @@ -149,14 +149,15 @@ }, // 邮件服务配置(用于系统通知、找回密码、错误报警等) "SystemEmailSendConfig": { - // SMTP端口 - "Port": 465, + // 企业邮箱SMTP服务器地址 "Host": "smtp.qiye.aliyun.com", + // SMTP端口 + "Port": 465, "Imap": "imap.qiye.aliyun.com", - "ImapPort": 993, + // 发件人邮箱地址 "FromEmail": "test@extimaging.com", // 发件人显示名称 @@ -166,14 +167,16 @@ // 系统对外访问地址 "SiteUrl": "http://irc.test.extimaging.com/login", - "PlatformName": "EICS", - "PlatformNameCN": "展影云平台", - // 系统简称一致性核查使用 + + // 系统简称 - 一致性核查使用 "SystemShortName": "IRC", - // 组织英文名称 + // 组织英文名称-添加用户默认值 "OrganizationName": "ExtImaging", // 组织中文名称 "OrganizationNameCN": "ExtImaging", + + "PlatformName": "EICS", + "PlatformNameCN": "展影云平台", // 公司英文全称 "CompanyName": "Extensive Imaging", // 公司中文全称 @@ -182,15 +185,14 @@ "CompanyShortName": "Extensive Imaging", // 公司中文简称 "CompanyShortNameCN": "展影医疗", - // 是否为国际版环境 + + // 是否为国际版环境 方便前端区分,用于区分lili 还是irc 做一些事情 "IsEnv_US": false, - // 是否开启系统异常邮件报警 - "IsOpenErrorNoticeEmail": false, // 邮箱格式校验正则表达式 "EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "CronEmailDefaultCulture": "zh-CN", - // 接收系统异常报警的邮箱列表 - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + + //后端周期性邮件默认语言 + "CronEmailDefaultCulture": "zh-CN" }, // PACS 连接配置 "SystemPacsConfig": { diff --git a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json index 8a695d472..14b84eaf0 100644 --- a/IRaCIS.Core.API/appsettings.US_Prod_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Prod_IRC.json @@ -20,16 +20,38 @@ }, "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/" + "IsOpenStoreSync": true, + "ApiDeployRegion": "US", + "SyncConfigList": [ + { + "Domain": "eilili.elevateimaging.ai", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "lili.elevateimaging.ai", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], + "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-lili-store", + "ViewEndpoint": "https://zy-lili-cache.oss-cn-shanghai.aliyuncs.com", + "Region": "oss-cn-shanghai", + "DurationSeconds": 7200 }, - "AWS": { "Region": "us-east-1", "EndPoint": "s3.us-east-1.amazonaws.com", @@ -90,10 +112,8 @@ "CompanyShortNameCN": "展影医疗", "SiteUrl": "https://lili.elevateimaging.ai/login", "IsEnv_US": true, - "IsOpenErrorNoticeEmail": false, "EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "CronEmailDefaultCulture": "en-US", - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + "CronEmailDefaultCulture": "en-US" }, "SystemPacsConfig": { diff --git a/IRaCIS.Core.API/appsettings.US_Test_IRC.json b/IRaCIS.Core.API/appsettings.US_Test_IRC.json index 367320716..b455bdf8c 100644 --- a/IRaCIS.Core.API/appsettings.US_Test_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Test_IRC.json @@ -93,9 +93,7 @@ "CompanyShortName": "Elevate Imaging", "CompanyShortNameCN": "展影医疗", "SiteUrl": "https://lili.test.elevateimaging.ai/login", - "IsEnv_US": true, - "IsOpenErrorNoticeEmail": false, - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + "IsEnv_US": true }, "SystemPacsConfig": { diff --git a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json index 7305f27d3..d9408c07b 100644 --- a/IRaCIS.Core.API/appsettings.US_Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.US_Uat_IRC.json @@ -97,10 +97,8 @@ "CompanyShortNameCN": "展影医疗", "SiteUrl": "https://lili.uat.elevateimaging.ai/login", "IsEnv_US": true, - "IsOpenErrorNoticeEmail": false, "EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "CronEmailDefaultCulture": "en-US", - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + "CronEmailDefaultCulture": "en-US" }, "SystemPacsConfig": { diff --git a/IRaCIS.Core.API/appsettings.Uat_IRC.json b/IRaCIS.Core.API/appsettings.Uat_IRC.json index cb743d7a1..2186b76d6 100644 --- a/IRaCIS.Core.API/appsettings.Uat_IRC.json +++ b/IRaCIS.Core.API/appsettings.Uat_IRC.json @@ -19,6 +19,26 @@ "ObjectStoreService": { "ObjectStoreUse": "AliyunOSS", + "IsOpenStoreSync": true, + "ApiDeployRegion": "CN", + "SyncConfigList": [ + { + "Domain": "irc.uat.extimaging.com", + "Primary": "AliyunOSS", + "Target": "AWS", + "UploadRegion": "CN", + "TargetRegion": "US", + "IsOpenSync": true + }, + { + "Domain": "lili.uat.extimaging.com", + "Primary": "AWS", + "Target": "AliyunOSS", + "UploadRegion": "US", + "TargetRegion": "CN", + "IsOpenSync": true + } + ], "AliyunOSS": { "RegionId": "cn-shanghai", @@ -50,9 +70,9 @@ "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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", + "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 @@ -104,10 +124,8 @@ "CompanyShortName": "Extensive Imaging", "CompanyShortNameCN": "展影医疗", "IsEnv_US": false, - "IsOpenErrorNoticeEmail": false, "EmailRegexStr": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", - "CronEmailDefaultCulture": "zh-CN", - "ErrorNoticeEmailList": [ "872297557@qq.com" ] + "CronEmailDefaultCulture": "zh-CN" }, "SystemPacsConfig": { diff --git a/IRaCIS.Core.Application/Auth/TokenService.cs b/IRaCIS.Core.Application/Auth/TokenService.cs index 6b4f908a4..8f00c77c5 100644 --- a/IRaCIS.Core.Application/Auth/TokenService.cs +++ b/IRaCIS.Core.Application/Auth/TokenService.cs @@ -39,7 +39,8 @@ namespace IRaCIS.Core.Application.Auth new Claim(JwtIRaCISClaimType.UserTypeShortName,user.UserTypeShortName), new Claim(JwtIRaCISClaimType.PermissionStr,user.PermissionStr), new Claim(JwtIRaCISClaimType.IsZhiZhun,user.IsZhiZhun.ToString()), - new Claim(JwtIRaCISClaimType.IsTestUser,user.IsTestUser.ToString()) + new Claim(JwtIRaCISClaimType.IsTestUser,user.IsTestUser.ToString()), + new Claim(JwtIRaCISClaimType.UserWorkLanguage,user.UserWorkLanguage.ToString()) }; ////创建令牌 diff --git a/IRaCIS.Core.Application/Auth/UserTokenInfo.cs b/IRaCIS.Core.Application/Auth/UserTokenInfo.cs index ab104ae58..44a9394e4 100644 --- a/IRaCIS.Core.Application/Auth/UserTokenInfo.cs +++ b/IRaCIS.Core.Application/Auth/UserTokenInfo.cs @@ -23,5 +23,7 @@ namespace IRaCIS.Core.Application.Auth public bool IsZhiZhun { get; set; } public string UserTypeShortName { get; set; } = string.Empty; + + public UserWorkLanguage UserWorkLanguage { get; set; } } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs b/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs index ac487b773..757a1d7ae 100644 --- a/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs +++ b/IRaCIS.Core.Application/BusinessFilter/_Config/_AppSettings.cs @@ -79,11 +79,12 @@ public class SystemEmailSendConfig public bool IsEnv_US { get; set; } - public bool IsOpenErrorNoticeEmail { get; set; } - public string EmailRegexStr { get; set; } - public List ErrorNoticeEmailList { get; set; } = new List(); + //public bool IsOpenErrorNoticeEmail { get; set; } + + + //public List ErrorNoticeEmailList { get; set; } = new List(); } public class SystemEmailSendConfigView diff --git a/IRaCIS.Core.Application/Helper/DicomDIRHelper.cs b/IRaCIS.Core.Application/Helper/DicomDIRHelper.cs index cba05d034..f41bd13cd 100644 --- a/IRaCIS.Core.Application/Helper/DicomDIRHelper.cs +++ b/IRaCIS.Core.Application/Helper/DicomDIRHelper.cs @@ -3,6 +3,7 @@ using FellowOakDicom; using FellowOakDicom.Media; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Models; +using NPOI.Util; using System; using System.Collections.Generic; using System.Data; @@ -160,6 +161,91 @@ namespace IRaCIS.Core.Application.Helper } + public static async Task GenerateStudyDIR(List list, Dictionary dic, string? dirSavePath = null, Stream? outputStream = null) + { + var mappings = new List(); + int index = 1; + + var trialId = Guid.Empty; + + + var studyUid = list.FirstOrDefault()?.StudyInstanceUid; + + var dicomDir = new DicomDirectory(); + + foreach (var item in list.OrderBy(t => t.SeriesNumber).ThenBy(t => t.InstanceNumber)) + { + var dicomUid = DicomUID.Enumerate().FirstOrDefault(uid => uid.UID == item.TransferSytaxUID); + + if (dicomUid != null) + { + var ts = DicomTransferSyntax.Query(dicomUid); + + var dataset = new DicomDataset(ts) + { + { DicomTag.PatientID, item.PatientId ?? string.Empty }, + { DicomTag.PatientName, item.PatientName ?? string.Empty }, + { DicomTag.PatientBirthDate, item.PatientBirthDate ?? string.Empty }, + { DicomTag.PatientSex, item.PatientSex ?? string.Empty }, + + { DicomTag.StudyInstanceUID, item.StudyInstanceUid ?? string.Empty }, + { DicomTag.StudyID, item.StudyId ?? string.Empty }, + { DicomTag.StudyDate, item.DicomStudyDate ?? string.Empty }, + { DicomTag.StudyTime, item.DicomStudyTime ?? string.Empty }, + { DicomTag.AccessionNumber, item.AccessionNumber ?? string.Empty }, + { DicomTag.StudyDescription, item.StudyDescription ?? string.Empty }, + + { DicomTag.SeriesInstanceUID, item.SeriesInstanceUid ?? string.Empty }, + { DicomTag.Modality, item.Modality ?? string.Empty }, + { DicomTag.SeriesDate, item.DicomSeriesDate ?? string.Empty }, + { DicomTag.SeriesTime, item.DicomSeriesTime ?? string.Empty }, + { DicomTag.SeriesNumber, item.SeriesNumber.ToString() ?? string.Empty }, + { DicomTag.SeriesDescription, item.SeriesDescription ?? string.Empty }, + + { DicomTag.SOPInstanceUID, item.SopInstanceUid ?? string.Empty }, + { DicomTag.SOPClassUID, item.SOPClassUID ?? string.Empty }, + { DicomTag.InstanceNumber, item.InstanceNumber.ToString() ?? string.Empty }, + { DicomTag.MediaStorageSOPClassUID, item.MediaStorageSOPClassUID ?? string.Empty }, + { DicomTag.MediaStorageSOPInstanceUID, item.MediaStorageSOPInstanceUID ?? string.Empty }, + { DicomTag.TransferSyntaxUID, item.TransferSytaxUID ?? string.Empty }, + }; + + var dicomFile = new DicomFile(dataset); + + // 文件名递增格式:IM_00001, IM_00002, ... + string filename = $@"IMAGE\IM_{index:D5}"; // :D5 表示补足5位 + + mappings.Add($"{filename} => {item.InstanceId}"); + + dic.Add(item.InstanceId.ToString(), filename.TrimEnd('/', '\\').Split('/', '\\').Last()); + + dicomDir.AddFile(dicomFile, filename); + + index++; + } + + + } + + //有实际的文件 + if (mappings.Count > 0) + { + // 保存 DICOMDIR 到临时文件 不能直接写入到流种 + + if (dirSavePath.IsNotNullOrEmpty()) + { + await dicomDir.SaveAsync(dirSavePath); + + } + else + { + await dicomDir.SaveAsync(outputStream); + } + } + + } + + public static StudyDIRInfo ReadDicomDIRInfo(DicomFile dicomFile) { diff --git a/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs b/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs index b87896b90..9a5ba0b5a 100644 --- a/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs +++ b/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs @@ -17,7 +17,7 @@ public static class SendEmailHelper //没有收件人 那么不发送 if (messageToSend.To.Count == 0) - { + { return string.Empty; } @@ -62,8 +62,15 @@ public static class SendEmailHelper } - - public static async Task SendEmailAsync(MimeMessage messageToSend, Trial trial, EventHandler? messageSentSuccess = null) + /// + /// 发送项目邮件 + /// + /// + /// + /// + /// + /// + public static async Task SendTrialEmailAsync(MimeMessage messageToSend, Trial trial, EventHandler? messageSentSuccess = null) { // 项目的需要重设 发件地址与邮件地址 @@ -78,12 +85,39 @@ public static class SendEmailHelper string result = string.Empty; result = messageToSend.MessageId; + //没有收件人 那么不发送 if (messageToSend.To.Count == 0) { return string.Empty; } + // 替换邮件标题 + if (!string.IsNullOrEmpty(messageToSend.Subject)) + { + foreach (var item in trial.TrialObjectNameList) + { + // 把标题里的占位符替换成真实名称 + messageToSend.Subject = messageToSend.Subject.Replace(item.Name, item.TrialName); + } + } + + // 构建替换字典 + var replacements = new Dictionary(); + foreach (var item in trial.TrialObjectNameList) + { + replacements[item.Name] = item.TrialName; + } + + // 安全替换 HTML + ReplaceHtmlContent(messageToSend.Body, replacements); + + + + + + + try { using (var smtp = new MailKit.Net.Smtp.SmtpClient()) @@ -128,6 +162,27 @@ public static class SendEmailHelper return result; } + + + // 遍历邮件体,找到 HTML 部分并替换 + public static void ReplaceHtmlContent(MimeEntity entity, Dictionary replacements) + { + if (entity is Multipart multipart) + { + foreach (var part in multipart) + { + ReplaceHtmlContent(part, replacements); + } + } + else if (entity is TextPart textPart && textPart.IsHtml) + { + // 只有这里才是真正的 HTML + foreach (var kv in replacements) + { + textPart.Text = textPart.Text.Replace(kv.Key, kv.Value); + } + } + } public static async Task TestEmailConfigAsync(SystemEmailSendConfig _systemEmailConfig) { using (var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5))) @@ -147,7 +202,7 @@ public static class SendEmailHelper return true; } - public static async Task SendEmailAsync(SMTPEmailConfig sMTPEmailConfig,Trial? trial, EventHandler? messageSentSuccess = null) + public static async Task SendEmailAsync(SMTPEmailConfig sMTPEmailConfig, Trial? trial, EventHandler? messageSentSuccess = null) { var messageToSend = new MimeMessage(); @@ -161,8 +216,9 @@ public static class SendEmailHelper if (sMTPEmailConfig.ToMailAddressList.Count == 0) { + return; //---没有收件人 - throw new ArgumentException(I18n.T("SendEmail_NoRecipient")); + //throw new ArgumentException(I18n.T("SendEmail_NoRecipient")); } else { diff --git a/IRaCIS.Core.Application/Helper/OSSService.cs b/IRaCIS.Core.Application/Helper/OSSService.cs index 3c84236b2..93f96b3f2 100644 --- a/IRaCIS.Core.Application/Helper/OSSService.cs +++ b/IRaCIS.Core.Application/Helper/OSSService.cs @@ -220,7 +220,7 @@ public class OSSService(IOptionsMonitor options, public object result { get; private set; } - + private static readonly object _tokenLock = new(); /// /// 将指定前缀下的所有现有文件立即转为目标存储类型 @@ -918,7 +918,7 @@ public class OSSService(IOptionsMonitor options, uploadInfo.FileSize = fileStream.CanSeek ? fileStream.Length : 0; uploadInfo.Path = returnPath; uploadInfo.FileName = fileRealName; - uploadInfo.FileType = Path.GetExtension(returnPath); + uploadInfo.FileType = Path.GetExtension(returnPath).TrimStart('.'); await _fileUploadRecordService.AddOrUpdateFileUploadRecord(uploadInfo); @@ -934,32 +934,52 @@ public class OSSService(IOptionsMonitor options, //后端批量上传 或者下载,不每个文件获取临时token private void BackBatchGetToken() { + + + // 过期时间 ≤ 当前时间 + 15分钟 时需要续期 + if (ObjectStoreServiceOptions.ObjectStoreUse == "AliyunOSS") { - if (AliyunOSSTempToken == null) + if (AliyunOSSTempToken != null && AliyunOSSTempToken.Expiration > DateTime.Now.AddMinutes(15)) { - GetObjectStoreTempToken(); - } - //token 过期了 - if (AliyunOSSTempToken?.Expiration.AddSeconds(10) <= DateTime.Now) - { - GetObjectStoreTempToken(); + return; // 还有15分钟以上,不需要续期 } + lock (_tokenLock) + { + if (AliyunOSSTempToken == null || + AliyunOSSTempToken.Expiration <= DateTime.Now.AddMinutes(15)) + { + GetObjectStoreTempToken(); + + Log.Logger.Warning("后端获取阿里云临时 Token"); + } + } } else if (ObjectStoreServiceOptions.ObjectStoreUse == "AWS") { - if (AWSTempToken == null) + + + if (AWSTempToken != null && AWSTempToken.Expiration > DateTime.Now.AddMinutes(15)) { - GetObjectStoreTempToken(); + return; } - //token 过期了 - if (AWSTempToken.Expiration?.AddSeconds(10) <= DateTime.Now) + + lock (_tokenLock) { - GetObjectStoreTempToken(); + if (AWSTempToken == null || + AWSTempToken.Expiration <= DateTime.Now.AddMinutes(15)) + { + GetObjectStoreTempToken(); + + Log.Logger.Warning("后端获取s3 临时 Token"); + } } + } + + } @@ -1057,7 +1077,7 @@ public class OSSService(IOptionsMonitor options, uploadInfo.FileSize = fileSize; uploadInfo.Path = returnPath; uploadInfo.FileName = Path.GetFileName(localFilePath); - uploadInfo.FileType = Path.GetExtension(returnPath); + uploadInfo.FileType = Path.GetExtension(returnPath).TrimStart("."); await _fileUploadRecordService.AddOrUpdateFileUploadRecord(uploadInfo); @@ -1073,6 +1093,13 @@ public class OSSService(IOptionsMonitor options, { BackBatchGetToken(); + // 确保目标目录存在 + string directory = Path.GetDirectoryName(localFilePath); + if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) + { + Directory.CreateDirectory(directory); + } + ossRelativePath = ossRelativePath.TrimStart('/'); try { diff --git a/IRaCIS.Core.Application/Helper/OtherTool/DicomSortHelper.cs b/IRaCIS.Core.Application/Helper/OtherTool/DicomSortHelper.cs index 065fc779e..7ae24842d 100644 --- a/IRaCIS.Core.Application/Helper/OtherTool/DicomSortHelper.cs +++ b/IRaCIS.Core.Application/Helper/OtherTool/DicomSortHelper.cs @@ -237,6 +237,20 @@ public static class DicomPixelMasker { workingDataset.AddOrUpdate(DicomTag.BurnedInAnnotation, "NO"); } + + //// 转 JPEG Baseline(最稳定) + //var transcoder = new DicomTranscoder( + // DicomTransferSyntax.ExplicitVRLittleEndian, + // DicomTransferSyntax.JPEGProcess1); + + //var finalFile = await Task.Run( + // () => transcoder.Transcode(workingFile), + // cancellationToken).ConfigureAwait(false); + + //if (output.CanSeek) + // output.SetLength(0); + //await finalFile.SaveAsync(output).ConfigureAwait(false); + // 不要把 original photometric 强行写回 var finalFile = await ReEncodeToOriginalTransferSyntaxAsync( workingFile, @@ -422,17 +436,26 @@ public static class DicomPixelMasker DicomPixelData sourcePixelData, IReadOnlyList frames) { + //dataset.Remove(DicomTag.PixelData); + //var newPixelData = DicomPixelData.Create(dataset, true); + ////newPixelData.BitsAllocated = sourcePixelData.BitsAllocated; + //newPixelData.BitsStored = sourcePixelData.BitsStored; + //newPixelData.HighBit = sourcePixelData.HighBit; + //newPixelData.SamplesPerPixel = sourcePixelData.SamplesPerPixel; + //newPixelData.PixelRepresentation = sourcePixelData.PixelRepresentation; + //newPixelData.PlanarConfiguration = sourcePixelData.PlanarConfiguration; + //newPixelData.Height = sourcePixelData.Height; + //newPixelData.Width = sourcePixelData.Width; + //newPixelData.PhotometricInterpretation = sourcePixelData.PhotometricInterpretation; + //foreach (var frame in frames) + //{ + // newPixelData.AddFrame(frame); + //} + dataset.Remove(DicomTag.PixelData); + var newPixelData = DicomPixelData.Create(dataset, true); - //newPixelData.BitsAllocated = sourcePixelData.BitsAllocated; - newPixelData.BitsStored = sourcePixelData.BitsStored; - newPixelData.HighBit = sourcePixelData.HighBit; - newPixelData.SamplesPerPixel = sourcePixelData.SamplesPerPixel; - newPixelData.PixelRepresentation = sourcePixelData.PixelRepresentation; - newPixelData.PlanarConfiguration = sourcePixelData.PlanarConfiguration; - newPixelData.Height = sourcePixelData.Height; - newPixelData.Width = sourcePixelData.Width; - newPixelData.PhotometricInterpretation = sourcePixelData.PhotometricInterpretation; + foreach (var frame in frames) { newPixelData.AddFrame(frame); diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 880b749a2..412c5e021 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -545,119 +545,32 @@ 系统模板文档配置表 - + - 数据字典-基础数据维护 + 获取系统基础配置信息 - - - - 数据字典-基础数据维护 - - - - - 添加bool - - + - + - 获取所有字典的Key + 更新系统基础配置 + - + - 添加字典 的同时 一起添加子项 --New + 获取系统邮件配置信息 - + - + - New 查询条件 + 更新系统邮件配置 - - - - - - 添加和编辑 - - - - - - - 获取子项数组 - - - - - 删除字典数据 - - - - 传递父亲 code 字符串 数组 返回多个下拉框数据 - - - - - - - 根据父亲Code 获取单个下拉框数据 - - - - - - - 根据父亲字典分组 获取子项 - - - - - - - 获取标准字典 - - - - - - 获取标准字典 - - - - - - 获取标准指定字典 - - - - - - - 获取所有下拉框 枚举 bool 数据 - - - - - - 获取是和否 - - - - - - - 获取审核状态 - - - - + @@ -1427,6 +1340,121 @@ RSTEST 疗效评估全称 + + + 数据字典-基础数据维护 + + + + + 数据字典-基础数据维护 + + + + + 添加bool + + + + + + + 获取所有字典的Key + + + + + + 添加字典 的同时 一起添加子项 --New + + + + + + + New 查询条件 + + + + + + + 添加和编辑 + + + + + + + 获取子项数组 + + + + + 删除字典数据 + + + + 传递父亲 code 字符串 数组 返回多个下拉框数据 + + + + + + + 根据父亲Code 获取单个下拉框数据 + + + + + + + 根据父亲字典分组 获取子项 + + + + + + + 获取标准字典 + + + + + + 获取标准字典 + + + + + + 获取标准指定字典 + + + + + + + 获取所有下拉框 枚举 bool 数据 + + + + + + 获取是和否 + + + + + + + 获取审核状态 + + + + + + 邮件日志 @@ -1682,6 +1710,17 @@ + + + 获取邮件主题和html 通用封装 以用户语言为主,没有的就用当前的请求语言_userInfo.IsEn_Us + + + + + + + + Reviewer简历录入 发送验证码 @@ -1707,18 +1746,20 @@ - + 项目影像后台下载,不打包 - + 后端api swagger 下载项目影像 + + @@ -2315,7 +2356,7 @@ - + 获取入组结果 @@ -2323,9 +2364,10 @@ + - + 获取PD 结果 @@ -2333,6 +2375,7 @@ 任务类型 标准类型 是否是全局产生(区分裁判任务) + @@ -2897,6 +2940,13 @@ + + + 获取未阅片完成的访视,方便前端调用下载 + + + + 批量勾选访视 进行下载 @@ -5918,6 +5968,82 @@ + + + 阅片导入 + + + + + + 获取阅片的计算数据 + + + + + + + 删除病灶获取起始病灶序号 + + + + + + 获取阅片报告 + + + + + + + 将上一次的访视病灶添加到这一次 + + + + + + + 测试计算 + + + + + + + + 计算任务 + + + + + + + 自动计算 + + + + + + + + 获取脂肪分数平均值 + + + + + + + 获取脂肪肝分级 + + + + + + + 计算平均值 + + + 阅片导入 @@ -9620,6 +9746,36 @@ 单位 + + + 数值类型 + + + + + 自定义单位 + + + + + 类型 + + + + + 数值类型 + + + + + 自定义单位 + + + + + 类型 + + 保存表格问题标记 @@ -15353,7 +15509,7 @@ - + 分割 @@ -15376,6 +15532,27 @@ + + + 添加新版本 + + + + + + + 获取分割组历史版本 + + + + + + + 恢复分割组历史版本 + + + + 删除分割组 @@ -15795,7 +15972,7 @@ - + 提交 患者检查和访视的绑定 @@ -15953,6 +16130,18 @@ + + + 维护中心调研设备默认配置 + + + + + + + 访视数据模型 + + 遮挡影像 @@ -16118,6 +16307,16 @@ + + + 发送项目邮件 + + + + + + + 镜像里面打入libreoffice 的方案 @@ -16307,23 +16506,25 @@ 全量一致性核查 - + 系统默认邮件 + 项目默认邮件 (不用添加到项目邮件配置中,才发送) + - + 项目手动邮件 (需要添加到项目邮件配置中,才发送) + @@ -16694,12 +16895,12 @@ 定时过期提醒 - + 生效通知 - + 生效通知 @@ -18089,6 +18290,21 @@ 是否保存 + + + 文件大小,单位字节 + + + + + SEGUpdateTime 更新时间 + + + + + 版本开始时间 + + 是否锁定 @@ -18720,6 +18936,11 @@ 受试者ID + + + QC质控下载 + + 性别 @@ -19180,7 +19401,17 @@ 检查名称列表 - + + + QC质控下载 + + + + + 打开失访可读 + + + 影像质控风险控制 @@ -19812,7 +20043,7 @@ TrialDocumentService - + TrialDocumentService diff --git a/IRaCIS.Core.Application/MassTransit/Command/ConsistenCheckCommand.cs b/IRaCIS.Core.Application/MassTransit/Command/ConsistenCheckCommand.cs index 899ce5d77..0860bfa4b 100644 --- a/IRaCIS.Core.Application/MassTransit/Command/ConsistenCheckCommand.cs +++ b/IRaCIS.Core.Application/MassTransit/Command/ConsistenCheckCommand.cs @@ -34,6 +34,8 @@ namespace IRaCIS.Core.Application.MassTransit.Command public Guid SubjectVisitId { get; set; } public Guid StudyId { get; set; } + + public string SiteCounty { get; set; } } public class FullCheckResult: CheckViewModel diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/CommonEmailHelper.cs b/IRaCIS.Core.Application/MassTransit/Consumer/CommonEmailHelper.cs index f02d835e0..f628bb5ea 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/CommonEmailHelper.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/CommonEmailHelper.cs @@ -21,12 +21,14 @@ public static class CommonEmailHelper /// /// /// + /// /// /// public static async Task GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailNoticeConfig configInfo, MimeMessage messageToSend, -Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailFunc) +Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailFunc, UserWorkLanguage? userWorkLanguage = null) { - var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; + + bool isEn_US = userWorkLanguage.HasValue ? userWorkLanguage.Value == UserWorkLanguage.US : CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var (topicStr, htmlBodyStr) = isEn_US ? (configInfo.EmailTopic, configInfo.EmailHtmlContent) : (configInfo.EmailTopicCN, configInfo.EmailHtmlContentCN); @@ -60,13 +62,14 @@ Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr /// /// /// + /// /// /// public static async Task GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(TrialEmailNoticeConfig configInfo, MimeMessage messageToSend, - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailFunc) + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailFunc, UserWorkLanguage? userWorkLanguage = null) { - var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; + bool isEn_US = userWorkLanguage.HasValue ? userWorkLanguage.Value == UserWorkLanguage.US : CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var (topicStr, htmlBodyStr) = isEn_US ? (configInfo.EmailTopic, configInfo.EmailHtmlContent) : (configInfo.EmailTopicCN, configInfo.EmailHtmlContentCN); @@ -94,12 +97,20 @@ Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr return configInfo; } - - - - public static string ReplaceCompanyName(SystemEmailSendConfig _systemEmailConfig, string needDealtxt) + public static string ReplacePlatformName(SystemEmailSendConfig _systemEmailConfig, string needDealtxt, UserWorkLanguage? userWorkLanguage = null) { - var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; + var isEn_US = userWorkLanguage.HasValue ? userWorkLanguage.Value == UserWorkLanguage.US : CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; + + var platformName = isEn_US ? _systemEmailConfig.PlatformName : _systemEmailConfig.PlatformNameCN; + + var str = needDealtxt.Replace("{platformName}", platformName); + return str; + } + + + public static string ReplaceCompanyName(SystemEmailSendConfig _systemEmailConfig, string needDealtxt, UserWorkLanguage? userWorkLanguage = null) + { + var isEn_US = userWorkLanguage.HasValue ? userWorkLanguage.Value == UserWorkLanguage.US : CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var str = needDealtxt.Replace("{company}", isEn_US ? _systemEmailConfig.CompanyName : _systemEmailConfig.CompanyNameCN) .Replace("{company abbreviation}", isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN); diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs index c8f98b101..312ee375b 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ConsistencyCheckConsumer.cs @@ -10,12 +10,14 @@ using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; using MassTransit; +using MaxMind.GeoIP2.Model; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; using Newtonsoft.Json; +using System.Globalization; using System.IO; using System.Text; @@ -79,6 +81,8 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer Modality = study.ModalityForEdit, SubjectCode = subject.Code, VisitName = sv.VisitName, + + SiteCounty = sv.TrialSite.Country, }; var noneDicomQuey = from sv in _subjectVisitRepository.Where(subjectVisitLambda) @@ -93,6 +97,8 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer Modality = noneDicomStudy.Modality, SubjectCode = subject.Code, VisitName = sv.VisitName, + + SiteCounty = sv.TrialSite.Country, }; var dbList = (await dicomQuery.ToListAsync()).Union(await noneDicomQuey.ToListAsync()).ToList(); @@ -120,6 +126,21 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer var dbVisitStudyList = dbList.Where(t => t.SubjectCode == sv.SubjectCode && t.SiteCode == sv.SiteCode && t.VisitName == sv.VisitName).ToList(); + //设置当前中心语言 + + var isEn_us = dbVisitStudyList.First().SiteCounty == StaticData.SiteCountry.US; + + var cultureInfoName = StaticData.CultureInfo.en_US; + + if (isEn_us == false) + { + cultureInfoName = StaticData.CultureInfo.zh_CN; + } + + CultureInfo.CurrentCulture = new CultureInfo(cultureInfoName); + CultureInfo.CurrentUICulture = new CultureInfo(cultureInfoName); + + //找到etc 当前visit site 和subject 一致的检查列表 var etcVisitStudyList = etcList.Where(t => t.SubjectCode == sv.SubjectCode && t.SiteCode == sv.SiteCode && t.VisitName == sv.VisitName).ToList(); diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/Dto/SendImageReuploadEmailDto.cs b/IRaCIS.Core.Application/MassTransit/Consumer/Dto/SendImageReuploadEmailDto.cs index 263f606e4..9fa2f0410 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/Dto/SendImageReuploadEmailDto.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/Dto/SendImageReuploadEmailDto.cs @@ -27,5 +27,16 @@ namespace IRaCIS.Core.Application.MassTransit.Consumer.Dto + } + + public class SendEmailUserDto + { + public UserTypeEnum UserTypeEnum { get; set; } + + public string FullName { get; set; } + + public UserWorkLanguage UserWorkLanguage { get; set; } + + public string EMail { get; set; } } } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs index f45d703d5..477f9dcc5 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs @@ -273,15 +273,30 @@ public class ImageConsumer( }; // 根据不同场景获取不同角色的用户 先排除CRC和CRA - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == inDto.TrialId && !x.TrialUser.IsDeleted && !filterUserTypeList.Contains(x.UserRole.UserTypeEnum) ).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == inDto.TrialId && !x.TrialUser.IsDeleted && !filterUserTypeList.Contains(x.UserRole.UserTypeEnum) ).Include(x => x.UserRole).Select(x => x.UserRole) + .Select(x => new SendEmailUserDto() + { + UserTypeEnum = x.UserTypeEnum, + FullName = x.FullName, + UserWorkLanguage = x.IdentityUser.UserWorkLanguage, + EMail=x.EMail, + }) + .ToListAsync(); // CRC和CRA单独取 - var crcAndcraUserList = await _trialSiteRepository.Where(x => x.Id == inDto.SubjectVisit.TrialSiteId).SelectMany(x => x.CRCUserList.Select(y => y.UserRole)).ToListAsync(); + var crcAndcraUserList = await _trialSiteRepository.Where(x => x.Id == inDto.SubjectVisit.TrialSiteId).SelectMany(x => x.CRCUserList.Select(y => y.UserRole)) + .Select(x => new SendEmailUserDto() + { + UserTypeEnum = x.UserTypeEnum, + FullName = x.FullName, + UserWorkLanguage = x.IdentityUser.UserWorkLanguage, + EMail = x.EMail, + }).ToListAsync(); trialUserList.AddRange(crcAndcraUserList); // 根据场景确定收件人 - List toUserList = new List(); - List ccUserList = new List(); + List toUserList = new List(); + List ccUserList = new List(); var emailNoticeUserList = await _emailNoticeUserTypeRepository.Where(x => x.EmailNoticeConfigId == inDto.EmailNoticeConfig.Id).ToListAsync(); var userTypeEnumList = emailNoticeUserList.Select(x => x.UserType).ToList(); @@ -334,42 +349,55 @@ public class ImageConsumer( DictionaryList = dictionaryDtos }); - foreach (var userinfo in toUserList) + + var userWorkLanguageList = toUserList.Select(x => x.UserWorkLanguage).Distinct().ToList(); + + foreach (var workLanguage in userWorkLanguageList) { + + var userinfoList = toUserList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); var messageToSend = new MimeMessage(); // 发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + + foreach (var userinfo in userinfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + // 添加抄送 foreach (var ccUser in ccUserList) { messageToSend.Cc.Add(new MailboxAddress(ccUser.FullName, ccUser.EMail)); } + + var userNames = userinfoList.Select(x => x.FullName).ToList(); + // 格式化邮件内容 Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var subjectCode = inDto.SubjectVisit.Subject.Code; - var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, inDto.SubjectVisit.VisitName); - var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 用户名 {0} - trialInfo.ExperimentName, // 项目 {1} - subjectCode, // 受试者 {2} - inDto.SubjectVisit.VisitName, // 访视 {3} - dictionValue[0], // 是否加急 {4} - dictionValue[1], // 审批结果 {5} - _systemEmailConfig.SiteUrl // 链接 {6} - ); + { + var subjectCode = inDto.SubjectVisit.Subject.Code; + var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, inDto.SubjectVisit.VisitName); + var htmlBodyStr = string.Format( + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), // 用户名 {0} + trialInfo.ExperimentName, // 项目 {1} + subjectCode, // 受试者 {2} + inDto.SubjectVisit.VisitName, // 访视 {3} + dictionValue[0], // 是否加急 {4} + dictionValue[1], // 审批结果 {5} + _systemEmailConfig.SiteUrl // 链接 {6} + ); - return (topicStr, htmlBodyStr); - }; + return (topicStr, htmlBodyStr); + }; - - - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(inDto.EmailNoticeConfig, messageToSend, emailConfigFunc); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(inDto.EmailNoticeConfig, messageToSend, emailConfigFunc, workLanguage); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } @@ -446,11 +474,19 @@ public class ImageConsumer( var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); // 根据不同场景获取不同角色的用户 - var trialUser = await _trialUseRoleRepository.Where(x => x.TrialId == trialId && !x.TrialUser.IsDeleted).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); + var trialUser = await _trialUseRoleRepository.Where(x => x.TrialId == trialId && !x.TrialUser.IsDeleted).Include(x => x.UserRole).Select(x => x.UserRole) + .Select(x => new SendEmailUserDto() + { + UserTypeEnum = x.UserTypeEnum, + FullName = x.FullName, + UserWorkLanguage = x.IdentityUser.UserWorkLanguage, + EMail = x.EMail, + }) + .ToListAsync(); // 根据场景确定收件人 - List toUserList = new List(); - List ccUserList = new List(); + List toUserList = new List(); + List ccUserList = new List(); var emailNoticeUserList = await _emailNoticeUserTypeRepository.Where(x => x.EmailNoticeConfigId == emailNoticeConfig.Id).ToListAsync(); @@ -469,12 +505,19 @@ public class ImageConsumer( return; } - foreach (var userinfo in toUserList) + var userWorkLanguageList = toUserList.Select(x => x.UserWorkLanguage).Distinct().ToList(); + + foreach (var workLanguage in userWorkLanguageList) { + var userinfoList = toUserList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); var messageToSend = new MimeMessage(); // 发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + + foreach (var userinfo in userinfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } // 添加抄送 foreach (var ccUser in ccUserList) @@ -482,13 +525,15 @@ public class ImageConsumer( messageToSend.Cc.Add(new MailboxAddress(ccUser.FullName, ccUser.EMail)); } + var userNames = userinfoList.Select(x => x.FullName).ToList(); + // 格式化邮件内容 Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} "", // 受试者 {2} - 阅片人筛选不涉及受试者 "", // 访视 {3} - 阅片人筛选不涉及访视 @@ -500,9 +545,9 @@ public class ImageConsumer( return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailNoticeConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailNoticeConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs index c494a2ccc..ceb6ff525 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs @@ -1,5 +1,6 @@ -using IRaCIS.Core.Application.Helper; +using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.MassTransit.Command; +using IRaCIS.Core.Application.MassTransit.Consumer.Dto; using IRaCIS.Core.Domain; using IRaCIS.Core.Domain.BaseModel; using IRaCIS.Core.Domain.Models; @@ -68,7 +69,7 @@ public class UrgentMedicalReviewAddedEventConsumer( var criterion = await _readingQuestionCriterionTrialRepository.FirstOrDefaultAsync(x => x.Id == medicalReview.VisitTask.TrialReadingCriterionId); - var userinfo = await _userRoleRepository.Where(x => x.Id == medicalReview.MedicalManagerUserId).FirstOrDefaultAsync(); + var userinfo = await _userRoleRepository.Where(x => x.Id == medicalReview.MedicalManagerUserId).Include(x => x.IdentityUser).FirstOrDefaultAsync(); var taskInfo = await _visitTaskRepository.Where(x => x.Id == medicalReview.VisitTaskId).Include(x => x.SourceSubjectVisit).Include(x => x.ReadModule).Include(x => x.Subject).FirstNotNullAsync(); @@ -78,7 +79,8 @@ public class UrgentMedicalReviewAddedEventConsumer( var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == visitid).FirstOrDefaultAsync(); - + var workLanguage = userinfo.IdentityUser?.UserWorkLanguage; + var userIsEn_US = workLanguage.HasValue ? workLanguage.Value == UserWorkLanguage.US : isEn_US; var messageToSend = new MimeMessage(); //发件地址 @@ -86,14 +88,14 @@ public class UrgentMedicalReviewAddedEventConsumer( messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == medicalReview.TrialId); - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() { DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, + IsEn_US = userIsEn_US, DictionaryList = new List() @@ -110,7 +112,7 @@ public class UrgentMedicalReviewAddedEventConsumer( var subjectName = taskInfo.BlindSubjectCode.IsNullOrEmpty() ? taskInfo.Subject.Code : taskInfo.BlindSubjectCode; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectName, taskInfo.TaskBlindName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userinfo.FullName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} criterion.CriterionName, // 阅片标准 {2} @@ -126,9 +128,9 @@ public class UrgentMedicalReviewAddedEventConsumer( return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } @@ -177,7 +179,7 @@ public class UrgentIRRepliedMedicalReviewConsumer( var criterion = await _readingQuestionCriterionTrialRepository.FirstOrDefaultAsync(x => x.Id == medicalReview.VisitTask.TrialReadingCriterionId); - var userinfo = await _userRoleRepository.Where(x => x.Id == medicalReview.MedicalManagerUserId).FirstOrDefaultAsync(); + var userinfo = await _userRoleRepository.Where(x => x.Id == medicalReview.MedicalManagerUserId).Include(x => x.IdentityUser).FirstOrDefaultAsync(); var taskInfo = await _visitTaskRepository.Where(x => x.Id == medicalReview.VisitTaskId).Include(x => x.SourceSubjectVisit).Include(x => x.ReadModule).Include(x => x.Subject).FirstNotNullAsync(); @@ -187,6 +189,8 @@ public class UrgentIRRepliedMedicalReviewConsumer( var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == visitid).FirstOrDefaultAsync(); + var workLanguage = userinfo.IdentityUser?.UserWorkLanguage; + var userIsEn_US = workLanguage.HasValue ? workLanguage.Value == UserWorkLanguage.US : isEn_US; var messageToSend = new MimeMessage(); @@ -195,14 +199,14 @@ public class UrgentIRRepliedMedicalReviewConsumer( messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == medicalReview.TrialId); - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() { DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, + IsEn_US = userIsEn_US, DictionaryList = new List() @@ -219,7 +223,7 @@ public class UrgentIRRepliedMedicalReviewConsumer( var subjectCode = taskInfo.BlindSubjectCode.IsNullOrEmpty() ? taskInfo.Subject.Code : taskInfo.BlindSubjectCode; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, taskInfo.TaskBlindName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userinfo.FullName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} criterion.CriterionName, // 阅片标准 {2} @@ -234,9 +238,9 @@ public class UrgentIRRepliedMedicalReviewConsumer( return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } @@ -293,7 +297,7 @@ public class UrgentMIMRepliedMedicalReviewConsumer( var criterion = await _readingQuestionCriterionTrialRepository.FirstOrDefaultAsync(x => x.Id == medicalReview.VisitTask.TrialReadingCriterionId); var taskInfo = await _visitTaskRepository.Where(x => x.Id == medicalReview.VisitTaskId).Include(x => x.SourceSubjectVisit).Include(x => x.ReadModule).Include(x => x.Subject).FirstNotNullAsync(); - var userinfo = await _userRoleRepository.Where(x => x.Id == taskInfo.DoctorUserId).FirstOrDefaultAsync(); + var userinfo = await _userRoleRepository.Where(x => x.Id == taskInfo.DoctorUserId).Include(x => x.IdentityUser).FirstOrDefaultAsync(); @@ -303,6 +307,9 @@ public class UrgentMIMRepliedMedicalReviewConsumer( var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == visitid).FirstOrDefaultAsync(); + var workLanguage = userinfo.IdentityUser?.UserWorkLanguage; + var userIsEn_US = workLanguage.HasValue ? workLanguage.Value == UserWorkLanguage.US : isEn_US; + var messageToSend = new MimeMessage(); @@ -311,14 +318,14 @@ public class UrgentMIMRepliedMedicalReviewConsumer( messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == medicalReview.TrialId); - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() { DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, + IsEn_US = userIsEn_US, DictionaryList = new List() @@ -335,7 +342,7 @@ public class UrgentMIMRepliedMedicalReviewConsumer( var subjectCode = taskInfo.BlindSubjectCode.IsNullOrEmpty() ? taskInfo.Subject.Code : taskInfo.BlindSubjectCode; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, taskInfo.TaskBlindName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userinfo.FullName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} @@ -352,8 +359,8 @@ public class UrgentMIMRepliedMedicalReviewConsumer( return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } } @@ -399,7 +406,15 @@ public class UrgentIRApplyedReReadingConsumer( var doctorInfo = await _userRoleRepository.Where(x => x.Id == taskInfo.DoctorUserId).FirstOrDefaultAsync(); - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == taskInfo.TrialId && x.TrialUser.IsDeleted==false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == taskInfo.TrialId && x.TrialUser.IsDeleted==false).Include(x => x.UserRole).Select(x => x.UserRole) + .Select(x => new SendEmailUserDto() + { + UserTypeEnum = x.UserTypeEnum, + FullName = x.FullName, + UserWorkLanguage = x.IdentityUser.UserWorkLanguage, + EMail = x.EMail, + }) + .ToListAsync(); var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.ProjectManager || x.UserTypeEnum == UserTypeEnum.APM).ToList(); if (context.Message.ReReadingApplyState == ReReadingApplyState.TrialGroupHaveApplyed) @@ -412,37 +427,48 @@ public class UrgentIRApplyedReReadingConsumer( var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == visitid).FirstOrDefaultAsync(); + var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == taskInfo.TrialId); - foreach (var userinfo in userinfoList) + var userWorkLanguageList = userinfoList.Select(x => x.UserWorkLanguage).Distinct().ToList(); + + foreach (var workLanguage in userWorkLanguageList) { - var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); - - var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == taskInfo.TrialId); - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var langUserinfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); + if (!langUserinfoList.Any()) continue; + var userIsEn_US = workLanguage == UserWorkLanguage.US; var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() { - DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, + IsEn_US = userIsEn_US, DictionaryList = new List() - { - new DictionaryDto (){DictionaryCode= "ReadingCategory",EnumValue=taskInfo.ReadingCategory.GetEnumInt(), }, //任务类型 - new DictionaryDto (){DictionaryCode= "RequestReReadingResult",EnumValue="0", }, //审批结果 都是待审批 - } + { + new DictionaryDto (){DictionaryCode= "ReadingCategory",EnumValue=taskInfo.ReadingCategory.GetEnumInt(), }, //任务类型 + new DictionaryDto (){DictionaryCode= "RequestReReadingResult",EnumValue="0", }, //审批结果 都是待审批 + } }); + var messageToSend = new MimeMessage(); + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + + foreach (var userinfo in langUserinfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + var userNames = langUserinfoList.Select(x => x.FullName).ToList(); + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var subjectCode = taskInfo.BlindSubjectCode.IsNullOrEmpty() ? taskInfo.Subject.Code : taskInfo.BlindSubjectCode; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, taskInfo.TaskBlindName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} taskInfo.TaskBlindName, // 访视 {3} @@ -451,18 +477,14 @@ public class UrgentIRApplyedReReadingConsumer( criterion.CriterionName, // 阅片标准 {6} dictionValue[1], // 审批结果 {7} _systemEmailConfig.SiteUrl // 链接 {8} - - - - ); return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs index 450733de4..eaa991375 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs @@ -39,73 +39,85 @@ public class UserSiteSurveySubmitedEventConsumer( if (emailConfig != null) { var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); + var siteInfo = await _trialSiteRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.Id == siteSurveyInfo.TrialSiteId, true); + var trialUserList = await _trialUserRoleRepository.Where(t => t.TrialId == siteSurveyInfo.TrialId && t.TrialUser.IsDeleted == false) .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM || t.UserRole.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserRole.UserTypeEnum == UserTypeEnum.APM) - .Select(t => new { t.UserRole.FullName, t.UserRole.IdentityUser.EMail, t.UserRole.UserTypeEnum }).ToListAsync(); + .Select(t => new { t.UserRole.FullName, t.UserRole.IdentityUser.EMail, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); var sPMOrCPMList = trialUserList.Where(t => t.UserTypeEnum == UserTypeEnum.SPM || t.UserTypeEnum == UserTypeEnum.CPM).ToList(); var pmAndAPMList = trialUserList.Where(t => t.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserTypeEnum == UserTypeEnum.APM).ToList(); - var messageToSend = new MimeMessage(); - var toUserName = string.Empty; - - //有SPM 并且参与 - if (trialInfo.IsSPMJoinSiteSurvey && sPMOrCPMList.Count > 0) + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { - foreach (var user in sPMOrCPMList) + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; + + var messageToSend = new MimeMessage(); + + var toUserName = string.Empty; + + //有SPM 并且参与 + if (trialInfo.IsSPMJoinSiteSurvey && sPMOrCPMList.Count > 0) { - messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail)); + var lan_SPMOrCPMList = sPMOrCPMList.Where(t => t.UserWorkLanguage == workLanguage); + + foreach (var user in lan_SPMOrCPMList) + { + messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail)); + } + + toUserName = string.Join('、', lan_SPMOrCPMList.Select(t => t.FullName)); + + foreach (var user in pmAndAPMList) + { + messageToSend.Cc.Add(new MailboxAddress(user.FullName, user.EMail)); + } + + } + else + { + var lan_pmAndAPMList = pmAndAPMList.Where(t => t.UserWorkLanguage == workLanguage); + + foreach (var user in lan_pmAndAPMList) + { + messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail)); + } + + toUserName = string.Join('、', lan_pmAndAPMList.Select(t => t.FullName)); } - toUserName = string.Join('、', sPMOrCPMList.Select(t => t.FullName)); + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - foreach (var user in pmAndAPMList) + + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { - messageToSend.Cc.Add(new MailboxAddress(user.FullName, user.EMail)); - } + var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo); + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, + siteInfo.TrialSiteCode, + siteInfo.TrialSiteAliasName, + siteSurveyInfo.UserName, + siteSurveyInfo.Email, + siteSurveyInfo.Phone, + _systemEmailConfig.SiteUrl + ); + + return (topicStr, htmlBodyStr); + }; + + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } - else - { - foreach (var user in pmAndAPMList) - { - messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail)); - } - - toUserName = string.Join('、', pmAndAPMList.Select(t => t.FullName)); - } - - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - - - var siteInfo = await _trialSiteRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.Id == siteSurveyInfo.TrialSiteId, true); - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - toUserName, - siteInfo.TrialSiteCode, - siteInfo.TrialSiteAliasName, - - siteSurveyInfo.UserName, - siteSurveyInfo.Email, - siteSurveyInfo.Phone, - _systemEmailConfig.SiteUrl - ); - - return (topicStr, htmlBodyStr); - }; - - - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); } } @@ -134,61 +146,74 @@ public class SiteSurveySPMSubmitedEventConsumer( var trialId = siteSurveyInfo.TrialId; + var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); + + var siteInfo = await _trialSiteRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.Id == siteSurveyInfo.TrialSiteId, true); + + var trialUserList = _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialUser.IsDeleted == false) + .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM || t.UserRole.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserRole.UserTypeEnum == UserTypeEnum.APM) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToList(); + var scenario = EmailBusinessScenario.Approval_SubmitSiteSurvey; var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); if (emailConfig != null) { - var messageToSend = new MimeMessage(); - var trialUserList = _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialUser.IsDeleted == false) - .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM || t.UserRole.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserRole.UserTypeEnum == UserTypeEnum.APM) - .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToList(); - - var sPMOrCPMList = trialUserList.Where(t => t.UserTypeEnum == UserTypeEnum.SPM || t.UserTypeEnum == UserTypeEnum.CPM).ToList(); - var pmAndAPMList = trialUserList.Where(t => t.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserTypeEnum == UserTypeEnum.APM).ToList(); - - var toUserName = string.Empty; - - foreach (var item in pmAndAPMList) + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { - messageToSend.To.Add(new MailboxAddress(item.FullName, item.EMail)); + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; + + + var sPMOrCPMList = trialUserList.Where(t => t.UserTypeEnum == UserTypeEnum.SPM || t.UserTypeEnum == UserTypeEnum.CPM).ToList(); + var pmAndAPMList = trialUserList.Where(t => t.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserTypeEnum == UserTypeEnum.APM).ToList(); + + var messageToSend = new MimeMessage(); + + var toUserName = string.Empty; + + var lan_pmAndAPMList = pmAndAPMList.Where(t => t.UserWorkLanguage == workLanguage); + + foreach (var item in lan_pmAndAPMList) + { + messageToSend.To.Add(new MailboxAddress(item.FullName, item.EMail)); + + toUserName = string.Join('、', lan_pmAndAPMList.Select(t => t.FullName)); + } + + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo); + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, + siteInfo.TrialSiteCode, //中心编号 + siteInfo.TrialSiteAliasName,//中心名称 + + siteSurveyInfo.UserName, //联系人 + siteSurveyInfo.Email, //联系邮箱 + siteSurveyInfo.Phone, //联系电话 + _systemEmailConfig.SiteUrl + ); + + return (topicStr, htmlBodyStr); + }; + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); - toUserName = string.Join('、', pmAndAPMList.Select(t => t.FullName)); } - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); - - var siteInfo = await _trialSiteRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.Id == siteSurveyInfo.TrialSiteId, true); - - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - toUserName, - siteInfo.TrialSiteCode, //中心编号 - siteInfo.TrialSiteAliasName,//中心名称 - - siteSurveyInfo.UserName, //联系人 - siteSurveyInfo.Email, //联系邮箱 - siteSurveyInfo.Phone, //联系电话 - _systemEmailConfig.SiteUrl - ); - - return (topicStr, htmlBodyStr); - }; - - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); } @@ -217,92 +242,108 @@ public class SiteSurverRejectedEventConsumer( var trialSiteSurveyId = context.Message.TrialSiteSurveyId; - var siteSurveyInfo = _trialSiteSurveyRepository.Where(t => t.Id == trialSiteSurveyId ,ignoreQueryFilters:true).FirstOrDefault().IfNullThrowException(); + var siteSurveyInfo = _trialSiteSurveyRepository.Where(t => t.Id == trialSiteSurveyId, ignoreQueryFilters: true).FirstOrDefault().IfNullThrowException(); var trialId = siteSurveyInfo.TrialId; + var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); + + var siteInfo = await _trialSiteRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.Id == siteSurveyInfo.TrialSiteId, true); + var scenario = EmailBusinessScenario.SiteSurveyReject; var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); if (emailConfig != null) { - - - var messageToSend = new MimeMessage(); - - var toUserName = siteSurveyInfo.UserName; - - if (context.Message.IsHaveSPMOrCPM) + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { - //PM 驳回到SPM - if (siteSurveyInfo.State == TrialSiteSurveyEnum.CRCSubmitted) + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; + + + var messageToSend = new MimeMessage(); + + var toUserName = siteSurveyInfo.UserName; + + if (context.Message.IsHaveSPMOrCPM) { - //var user = await _userRoleRepository.FirstOrDefaultAsync(t => t.Id == siteSurveyInfo.PreliminaryUserId); - - //name = user.FullName; - - var sPMOrCPMList = _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialUser.IsDeleted == false) - .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM) - .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToList(); - - - foreach (var user in sPMOrCPMList) + //PM 驳回到SPM + if (siteSurveyInfo.State == TrialSiteSurveyEnum.CRCSubmitted) { - messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail)); + + var sPMOrCPMList = _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialUser.IsDeleted == false) + .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToList(); + + var lan_SPMOrCPMList = sPMOrCPMList.Where(t => t.UserWorkLanguage == workLanguage); + + foreach (var user in lan_SPMOrCPMList) + { + messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail)); + } + + toUserName = string.Join('、', lan_SPMOrCPMList.Select(t => t.FullName)); + + } + //SPM 驳回到CRC + else if (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit) + { + //使用中心国家语言 一致才发送 + if ((siteInfo.Country == StaticData.SiteCountry.US && isEn_US) || (siteInfo.Country == StaticData.SiteCountry.CN && isEn_US == false)) + { + messageToSend.To.Add(new MailboxAddress(toUserName, siteSurveyInfo.Email)); + + } + } - toUserName = string.Join('、', sPMOrCPMList.Select(t => t.FullName)); - } - //SPM 驳回到CRC - else if (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit) + else { - messageToSend.To.Add(new MailboxAddress(toUserName, siteSurveyInfo.Email)); + //没有SPM PM驳回到CRC + + //使用中心国家语言 一致才发送 + if ((siteInfo.Country == StaticData.SiteCountry.US && isEn_US) || (siteInfo.Country == StaticData.SiteCountry.CN && isEn_US == false)) + { + messageToSend.To.Add(new MailboxAddress(toUserName, siteSurveyInfo.Email)); + + } } - } - else - { - //没有SPM PM驳回到CRC + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, + trialInfo.TrialCode, + trialInfo.ResearchProgramNo, + trialInfo.ExperimentName, + + siteInfo.TrialSiteCode, //中心编号 + siteInfo.TrialSiteAliasName,//中心名称 + siteSurveyInfo.LatestBackReason, //驳回原因 + _systemEmailConfig.SiteUrl, //链接 + (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit ? "inline - block" : "none") + ); + + return (topicStr, htmlBodyStr); + }; + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); - messageToSend.To.Add(new MailboxAddress(siteSurveyInfo.UserName, siteSurveyInfo.Email)); } - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - - var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); - - var siteInfo = await _trialSiteRepository.FirstOrDefaultAsync(t => t.TrialId == trialId && t.Id == siteSurveyInfo.TrialSiteId, true); - - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var topicStr = string.Format(input.topicStr, companyName,trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - toUserName, - trialInfo.TrialCode, - trialInfo.ResearchProgramNo, - trialInfo.ExperimentName, - - siteInfo.TrialSiteCode, //中心编号 - siteInfo.TrialSiteAliasName,//中心名称 - siteSurveyInfo.LatestBackReason, //驳回原因 - _systemEmailConfig.SiteUrl, //链接 - (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit ? "inline - block" : "none") - ); - - return (topicStr, htmlBodyStr); - }; - - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs index 100c5b596..52f7fae9c 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs @@ -36,7 +36,7 @@ public class CRCSubmitedAndQCToAuditEventConsumer( private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - Console.WriteLine("发送(005,006) 【加急项目所有IQC待领取质控任务】邮件!!!"); + Log.Logger.Warning("发送(005,006) 【加急项目所有IQC待领取质控任务】邮件!!!"); var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var subjectVisitId = context.Message.SubjectVisitId; @@ -49,80 +49,91 @@ public class CRCSubmitedAndQCToAuditEventConsumer( var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); + + var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); + if (trialEmailConfig != null) { - - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); - - var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.IQC).ToList(); - - - var pmandAPm = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList(); - - var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); - - var auditStateCode = "AuditStatePE"; - - if (trialInfo.QCProcessEnum == TrialQCProcess.DoubleAudit) + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { - auditStateCode = "AuditStateRC"; - } + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; + var iqcList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.IQC).Where(t => t.UserWorkLanguage == workLanguage).ToList(); - var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() - { - DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, - DictionaryList = new List() + var pmandAPm = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList(); + + + var auditStateCode = "AuditStatePE"; + + if (trialInfo.QCProcessEnum == TrialQCProcess.DoubleAudit) + { + auditStateCode = "AuditStateRC"; + } + + var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + { + + DictionaryRepository = _dictionaryRepository, + IsEn_US = isEn_US, + DictionaryList = new List() { new DictionaryDto (){DictionaryCode= auditStateCode,EnumValue=subjectVisit.AuditState.GetEnumInt(), }, //审核状态 } - }); + }); - var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + var messageToSend = new MimeMessage(); + //发件地址 + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + + + foreach (var userinfo in iqcList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + + var userNames = iqcList.Select(x => x.FullName).ToList(); + + foreach (var pm in pmandAPm) + { + messageToSend.Cc.Add(new MailboxAddress(pm.FullName, pm.EMail)); + } + + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + + + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var subjectCode = subjectVisit.Subject.Code; + var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); + var htmlBodyStr = string.Format( + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), // 用户名 {0} + trialInfo.ExperimentName, // 项目 {1} + subjectCode, // 受试者 {2} + subjectVisit.VisitName, // 访视 {3} + dictionValue[0], // 审核状态 {4} + _systemEmailConfig.SiteUrl // 链接 {5} + ); + + return (topicStr, htmlBodyStr); + }; + + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); - foreach (var userinfo in userinfoList) - { - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); } - var userNames = userinfoList.Select(x => x.FullName).ToList(); - foreach (var pm in pmandAPm) - { - messageToSend.Cc.Add(new MailboxAddress(pm.FullName, pm.EMail)); - } - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => - { - var subjectCode = subjectVisit.Subject.Code; - var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); - var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - string.Join(',', userNames), // 用户名 {0} - trialInfo.ExperimentName, // 项目 {1} - subjectCode, // 受试者 {2} - subjectVisit.VisitName, // 访视 {3} - dictionValue[0], // 审核状态 {4} - _systemEmailConfig.SiteUrl // 链接 {5} - ); - - return (topicStr, htmlBodyStr); - }; - - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); } } @@ -147,7 +158,7 @@ public class CRCRepliedQCChallengeEventConsumer( private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - Console.WriteLine("发送(Code012,013) 【CRC 回复质控质疑 通知QC】邮件!!!"); + Log.Logger.Warning("发送(Code012,013) 【CRC 回复质控质疑 通知QC】邮件!!!"); var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var subjectVisitId = context.Message.SubjectVisitId; @@ -158,26 +169,29 @@ public class CRCRepliedQCChallengeEventConsumer( var scenario = context.Message.IsPd ? EmailBusinessScenario.PDVerification_UnderQCQuery : EmailBusinessScenario.EligibilityVerification_Pending; + + var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); if (trialEmailConfig != null) { - - var qCChallengeDialog = await _qCChallengeDialogRepository.Where(x => x.Id == context.Message.QCChallengeDialogId).Include(x => x.QCChallenge).FirstNotNullAsync(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.IQC).ToList(); var pmandAPm = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList(); - - var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); var userinfo = subjectVisit.CurrentActionUser; + //重新设置当前发送邮件的语言 + var workLanguage = _userRoleRepository.Where(t => t.Id == userinfo.Id).Select(t => t.IdentityUser.UserWorkLanguage).First(); + isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -207,7 +221,7 @@ public class CRCRepliedQCChallengeEventConsumer( var subjectCode = subjectVisit.Subject.Code; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userinfo.FullName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} @@ -219,9 +233,9 @@ public class CRCRepliedQCChallengeEventConsumer( return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } } @@ -244,7 +258,7 @@ public class QCRepliedQCChallengeEventConsumer( private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - Console.WriteLine("发送(014,015) 【 QC回复 质控质疑,通知CRC】邮件!!!"); + Log.Logger.Warning("发送(014,015) 【 QC回复 质控质疑,通知CRC】邮件!!!"); var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var subjectVisitId = context.Message.SubjectVisitId; @@ -277,54 +291,61 @@ public class QCRepliedQCChallengeEventConsumer( } - - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); - - var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).ToList(); - - var craInfo = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.CRA).FirstOrDefault(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); - - - var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { - - DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, - DictionaryList = new List() - { - new DictionaryDto (){DictionaryCode= "YesOrNo",EnumValue=isclose.ToString().ToLower(), }, //是否关闭 - - } - }); + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; + + + var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Where(t => t.UserWorkLanguage == workLanguage).ToList(); + + var craInfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.CRA).ToList(); + + var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + { + + DictionaryRepository = _dictionaryRepository, + IsEn_US = isEn_US, + DictionaryList = new List() + { + new DictionaryDto (){DictionaryCode= "YesOrNo",EnumValue=isclose.ToString().ToLower(), }, //是否关闭 + + } + }); - foreach (var userinfo in userinfoList) - { var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); - if (craInfo != null) + + var toUserName = string.Join('、', userinfoList.Select(t => t.FullName)); + + foreach (var userinfo in userinfoList) { - messageToSend.Cc.Add(new MailboxAddress(craInfo.FullName, craInfo.EMail)); + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + + foreach (var user in craInfoList) + { + messageToSend.Cc.Add(new MailboxAddress(user.FullName, user.EMail)); } var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var subjectCode = subjectVisit.Subject.Code; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} subjectVisit.VisitName, // 访视 {3} @@ -337,10 +358,13 @@ public class QCRepliedQCChallengeEventConsumer( }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); } + + } } } @@ -364,7 +388,7 @@ public class CRCRepliedCheckChallengeEventConsumer( private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - Console.WriteLine("发送(019,020) 【 CRC 回复一致性核查质疑 通知PM】邮件!!!"); + Log.Logger.Warning("发送(019,020) 【 CRC 回复一致性核查质疑 通知PM】邮件!!!"); var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; @@ -383,49 +407,58 @@ public class CRCRepliedCheckChallengeEventConsumer( { - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); - var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList(); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); - - - - var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { - - DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, - DictionaryList = new List() - { - new DictionaryDto (){DictionaryCode= "CheckState",EnumValue=subjectVisit.CheckState.GetEnumInt(), }, //审核状态 - - } - }); + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; + + + + var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + { + + DictionaryRepository = _dictionaryRepository, + IsEn_US = isEn_US, + DictionaryList = new List() + { + new DictionaryDto (){DictionaryCode= "CheckState",EnumValue=subjectVisit.CheckState.GetEnumInt(), }, //审核状态 + + } + }); + + var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager) + .Where(t => t.UserWorkLanguage == workLanguage).ToList(); - foreach (var userinfo in userinfoList) - { var messageToSend = new MimeMessage(); + //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(String.Empty, userinfo.EMail)); + var toUserName = string.Join('、', userinfoList.Select(t => t.FullName)); + foreach (var userinfo in userinfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var subjectCode = subjectVisit.Subject.Code; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} subjectVisit.VisitName, // 访视 {3} @@ -437,10 +470,17 @@ public class CRCRepliedCheckChallengeEventConsumer( }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); + + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); } + + + + + + } } } @@ -466,12 +506,12 @@ public class PMRepliedCheckChallengeEventConsumer( private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - Console.WriteLine("发送(016,017) 【 PM 一致性核查 通知CRC】邮件!!!"); + Log.Logger.Warning("发送(016,017) 【 PM 一致性核查 通知CRC】邮件!!!"); var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var subjectVisitId = context.Message.SubjectVisitId; - var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Include(x => x.NoneDicomStudyList).Include(x => x.StudyList).Include(x => x.Subject).FirstNotNullAsync(); + var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Include(x => x.NoneDicomStudyList).Include(x => x.StudyList).Include(x => x.Subject).Include(t => t.TrialSite).FirstNotNullAsync(); var trialId = subjectVisit.TrialId; @@ -486,11 +526,11 @@ public class PMRepliedCheckChallengeEventConsumer( var checkChallengeDialog = await _checkChallengeDialogRepository.Where(x => x.Id == context.Message.CheckChallengeDialogId).FirstNotNullAsync(); - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); - var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).ToList(); - var craInfo = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.CRA).FirstOrDefault(); + var craInfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.CRA).ToList(); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); @@ -499,28 +539,46 @@ public class PMRepliedCheckChallengeEventConsumer( modalities = subjectVisit.NoneDicomStudyList.Select(t => t.Modality) .Union(subjectVisit.StudyList.Select(k => k.ModalityForEdit)).ToList(); - var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + + + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + //foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { + //重新设置当前发送邮件的语言 - DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, - DictionaryList = new List() - { - new DictionaryDto (){DictionaryCode= "CheckState",EnumValue=subjectVisit.CheckState.GetEnumInt(), }, //核查状态 + isEn_US = subjectVisit.TrialSite.Country == StaticData.SiteCountry.US; - } - }); + var workLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; + + var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Where(t => t.UserWorkLanguage == workLanguage).ToList(); - foreach (var userinfo in userinfoList) - { + var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + { + + DictionaryRepository = _dictionaryRepository, + IsEn_US = isEn_US, + DictionaryList = new List() + { + new DictionaryDto (){DictionaryCode= "CheckState",EnumValue=subjectVisit.CheckState.GetEnumInt(), }, //核查状态 + + } + }); + var messageToSend = new MimeMessage(); + //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); - if (craInfo != null) + + var toUserName = string.Join('、', userinfoList.Select(t => t.FullName)); + foreach (var userinfo in userinfoList) { - messageToSend.Cc.Add(new MailboxAddress(craInfo.FullName, craInfo.EMail)); + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + + foreach (var user in craInfoList) + { + messageToSend.Cc.Add(new MailboxAddress(user.FullName, user.EMail)); } var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; @@ -531,8 +589,8 @@ public class PMRepliedCheckChallengeEventConsumer( var subjectCode = subjectVisit.Subject.Code; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} @@ -547,10 +605,11 @@ public class PMRepliedCheckChallengeEventConsumer( }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } + } } } @@ -592,49 +651,57 @@ public class CheckStateChangedToAuditEventConsumer( - var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false).Include(x => x.UserRole).Select(x => x.UserRole).ToListAsync(); + var trialUserList = await _trialUseRoleRepository.Where(x => x.TrialId == subjectVisit.TrialId && x.TrialUser.IsDeleted == false) + .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); - var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager).ToList(); var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == subjectVisit.TrialId); - - - var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + // 遍历语言枚举 在底层判断收件人是否为空,决定是否跳过邮件发送,避免每个邮件场景的地方都重复判断 + foreach (UserWorkLanguage workLanguage in Enum.GetValues()) { + //重新设置当前发送邮件的语言 + isEn_US = workLanguage == UserWorkLanguage.US; - DictionaryRepository = _dictionaryRepository, - IsEn_US = isEn_US, - DictionaryList = new List() - { - new DictionaryDto (){DictionaryCode= "CheckState",EnumValue=subjectVisit.CheckState.GetEnumInt(), }, //审核状态 + var userinfoList = trialUserList.Where(x => x.UserTypeEnum == UserTypeEnum.APM || x.UserTypeEnum == UserTypeEnum.ProjectManager) + .Where(t => t.UserWorkLanguage == workLanguage).ToList(); - } - }); + var dictionValue = await CommonEmailHelper.TranslationDictionary(new TranslationDictionaryDto() + { + + DictionaryRepository = _dictionaryRepository, + IsEn_US = isEn_US, + DictionaryList = new List() + { + new DictionaryDto (){DictionaryCode= "CheckState",EnumValue=subjectVisit.CheckState.GetEnumInt(), }, //审核状态 + + } + }); - foreach (var userinfo in userinfoList) - { var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + + var toUserName = string.Join('、', userinfoList.Select(t => t.FullName)); + + foreach (var userinfo in userinfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - - - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var subjectCode = subjectVisit.Subject.Code; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.FullName, // 姓名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + toUserName, // 姓名 {0} trialInfo.ExperimentName, // 项目 {1} subjectCode, // 受试者 {2} subjectVisit.VisitName, // 访视 {3} @@ -646,10 +713,11 @@ public class CheckStateChangedToAuditEventConsumer( }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } + } } } @@ -671,7 +739,7 @@ public class QCClaimTaskEventConsumer( private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - Console.WriteLine("发送(Code007,008) 【QC 领取了质控任务】邮件!!!"); + Log.Logger.Warning("发送(Code007,008) 【QC 领取了质控任务】邮件!!!"); var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; @@ -708,6 +776,10 @@ public class QCClaimTaskEventConsumer( return; } + //重新设置当前发送邮件的语言 + var workLanguage = _userRoleRepository.Where(t => t.Id == userinfo.Id).Select(t => t.IdentityUser.UserWorkLanguage).First(); + isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -745,7 +817,7 @@ public class QCClaimTaskEventConsumer( var subjectCode = subjectVisit.Subject.Code; var topicStr = string.Format(input.topicStr, trialInfo.ResearchProgramNo, subjectCode, subjectVisit.VisitName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userinfo.FullName, // 用户名 {0} trialInfo.ExperimentName, // 项目 {1} string.Join(',', subjectcodes), // 受试者 {2} @@ -759,9 +831,9 @@ public class QCClaimTaskEventConsumer( }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } } diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs index 791843c2b..984472b8b 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs @@ -74,13 +74,17 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring t.UserRole.IdentityUser.EMail, t.UserRole.IdentityUser.UserName, t.Trial.TrialCode, - t.Trial.ResearchProgramNo + t.Trial.ResearchProgramNo, + t.UserRole.IdentityUser.UserWorkLanguage //TrialReadingCriterionList = t.Trial.TrialReadingCriterionList.Select(t => new { t.CriterionName, TrialReadingCriterionId = t.Id }).ToList() }); foreach (var trialUser in trialUserList) { + //重新设置当前发送邮件的语言 + var workLanguage = trialUser.UserWorkLanguage; + isEn_US = workLanguage == UserWorkLanguage.US; var userId = trialUser.UserId; @@ -153,7 +157,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, emailContent), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, emailContent, workLanguage), trialUser.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), @@ -167,9 +171,9 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring return (topicStr, htmlBodyStr); }; - await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); + await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); //处理标记已通知的任务 diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs index b3862f003..028ec03e3 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/QCRecurringEmailConsumer.cs @@ -44,12 +44,17 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync(); //找到 该项目的CRC 用户Id - var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); + var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => new { t.UserId, t.UserRole.FullName, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); //判断是否任务可以领取 ,可以的话 发送邮件 foreach (var user in userList) { + + //重新设置当前发送邮件的语言 + var workLanguage = user.UserWorkLanguage; + isEn_us = workLanguage == UserWorkLanguage.US; + var userId = user.UserId; //过滤项目 并且 将 _userInfo.Id 换位 当前发送邮件的Id var query = _trialRepository.Where(t => t.Id == trialId) @@ -72,7 +77,7 @@ public class QCImageQuestionRecurringEventConsumer(IRepository _trialRepo { var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); var htmlContent = isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN; - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent, workLanguage), user.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), sendStat.ToBeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, isEn_us, userId); @@ -116,12 +121,17 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr, t.DeclarationTypeEnumList }).FirstNotNullAsync(); //找到 该项目的IQC 用户Id - var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); + var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); //判断是否任务可以领取 ,可以的话 发送邮件 foreach (var user in userList) { + + //重新设置当前发送邮件的语言 + var workLanguage = user.UserWorkLanguage; + isEn_us = workLanguage == UserWorkLanguage.US; + var userId = user.UserId; //过滤项目 并且 将 _userInfo.Id 换位 当前发送邮件的Id @@ -147,7 +157,7 @@ public class CRCImageQuestionRecurringEventConsumer(IRepository _trialRep { var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); var htmlContent = isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN; - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent, workLanguage), user.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), sendStat.ToBeDealedCount - sendStat.ReUploadTobeDealedCount, sendStat.ReUploadTobeDealedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); @@ -181,7 +191,7 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; public async Task Consume(ConsumeContext context) { - var trialId=context.Message.TrialId; + var trialId = context.Message.TrialId; var isEn_us = context.Message.CultureInfoName == StaticData.CultureInfo.en_US; @@ -192,13 +202,17 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, var trialInfo = await _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, t.ExperimentName, t.TrialCode, t.TrialStatusStr }).FirstNotNullAsync(); //找到 该项目的IQC 用户Id - var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName }).ToListAsync(); + var userList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId).Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.IQC).Select(t => new { t.UserId, t.UserRole.FullName, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); //判断是否任务可以领取 ,可以的话 发送邮件 var userIdList = userList.Select(t => t.UserId).ToList(); foreach (var user in userList) { + //重新设置当前发送邮件的语言 + var workLanguage = user.UserWorkLanguage; + isEn_us = workLanguage == UserWorkLanguage.US; + var userId = user.UserId; //过滤项目 并且 将 _userInfo.Id 换位 当前发送邮件的Id @@ -222,11 +236,11 @@ public class ImageQCRecurringEventConsumer(IRepository _trialRepository, Func topicAndHtmlFunc = trialEmailConfig => { - + var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, trialInfo.ResearchProgramNo); var htmlContent = isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN; - var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlContent, workLanguage), user.FullName, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), sendStat.ToBeClaimedCount, sendStat.ToBeReviewedCount, _SystemEmailSendConfig.CurrentValue.SiteUrl); return (topicStr, htmlBodyStr, false, userId); diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs index 4497bf8f6..ddf05061d 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs @@ -5,6 +5,7 @@ using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.MassTransit.Consumer; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Models; +using IRaCIS.Core.Domain.Share; using MassTransit; using Microsoft.Extensions.Options; using MimeKit; @@ -84,203 +85,213 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); Console.WriteLine("发送定时过期提醒:人员数量" + userinfoList.Count); - int index = 1; - foreach (var userinfo in userinfoList) + + var scenario = EmailBusinessScenario.GeneralTraining_ExpirationNotification; + var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); + if (emailConfig == null) + { + return; + } + + var userWorkLanguageList = userinfoList.Select(x => x.UserWorkLanguage).Distinct().ToList(); + foreach (var workLanguage in userWorkLanguageList) { try { - Console.WriteLine($"{index}发送定时过期提醒,邮箱:{userinfo.EMail},姓名{userinfo.UserName}"); - index++; + var langUserInfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); + if (!langUserInfoList.Any()) + { + continue; + } + + var userIsEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); - //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + foreach (var userinfo in langUserInfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var userNames = langUserInfoList.Select(x => x.UserName).ToList(); - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.UserName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), _systemEmailConfig.SiteUrl ); return (topicStr, htmlBodyStr); }; - var scenario = EmailBusinessScenario.GeneralTraining_ExpirationNotification; - - var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); - - if (emailConfig != null) - { - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - - await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); - } - - + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); + await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } catch (Exception) { - } - } - } - } - /// - /// 生效通知 - /// - public class SystemDocumentPublishEventConsumer( - IRepository _trialReadingCriterionRepository, - IRepository _visitTaskRepository, - IRepository _systemDocumentRepository, - IRepository _identityUserRepository, - IRepository _systemDocConfirmedUserRepository, - IRepository _dictionaryRepository, - IRepository _trialUserRoleRepository, - IRepository _emailNoticeConfigrepository, + /// + /// 生效通知 + /// + public class SystemDocumentPublishEventConsumer( + IRepository _trialReadingCriterionRepository, + IRepository _visitTaskRepository, + IRepository _systemDocumentRepository, + IRepository _identityUserRepository, + IRepository _systemDocConfirmedUserRepository, + IRepository _dictionaryRepository, + IRepository _trialUserRoleRepository, + IRepository _emailNoticeConfigrepository, - IOptionsMonitor systemEmailConfig) : IConsumer - { - private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; - - public async Task Consume(ConsumeContext context) + IOptionsMonitor systemEmailConfig) : IConsumer { - var isEn_US = context.Message.CultureInfoName == StaticData.CultureInfo.en_US; + private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; - //设置当前事件传递过来的语言 - var culture = context.Message.CultureInfoName; - CultureInfo.CurrentCulture = new CultureInfo(culture); - - // 记录是否只发送给新增角色的日志 - if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any()) + public async Task Consume(ConsumeContext context) { - Console.WriteLine($"只发送给新增的角色,角色数量: {context.Message.NewUserTypeIds.Count}"); - } - // 构建查询 - IQueryable systemDocQuery; + var isEn_US = context.Message.CultureInfoName == StaticData.CultureInfo.en_US; - if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any()) - { - // 只查询新增角色的用户 - systemDocQuery = - from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) - from identityUser in _identityUserRepository.AsQueryable(false) - .Where(t => t.Status == UserStateEnum.Enable && - t.UserRoleList.Where(t => t.IsUserRoleDisabled == false) - .Any(t => context.Message.NewUserTypeIds.Contains(t.UserTypeId) && - sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) - select new UnionDocumentWithConfirmInfoView() + //设置当前事件传递过来的语言 + var culture = context.Message.CultureInfoName; + CultureInfo.CurrentCulture = new CultureInfo(culture); + + // 记录是否只发送给新增角色的日志 + if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any()) { - IsSystemDoc = true, - Id = sysDoc.Id, - CreateTime = sysDoc.CreateTime, - IsDeleted = sysDoc.IsDeleted, - SignViewMinimumMinutes = sysDoc.SignViewMinimumMinutes, - Name = sysDoc.Name, - Path = sysDoc.Path, - FileTypeId = sysDoc.FileTypeId, - UpdateTime = sysDoc.UpdateTime, - ConfirmUserId = identityUser.Id, - RealName = identityUser.FullName, - UserName = identityUser.UserName, - IsNeedSendEmial = identityUser.IsZhiZhun || (!identityUser.IsZhiZhun && sysDoc.DocUserSignType == DocUserSignType.InnerAndOuter), - FullFilePath = sysDoc.Path - }; - } - else - { - // 查询所有相关角色的用户 - systemDocQuery = - from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) - from identityUser in _identityUserRepository.AsQueryable(false) - .Where(t => t.Status == UserStateEnum.Enable && - t.UserRoleList.Where(t => t.IsUserRoleDisabled == false) - .Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) - select new UnionDocumentWithConfirmInfoView() + Console.WriteLine($"只发送给新增的角色,角色数量: {context.Message.NewUserTypeIds.Count}"); + } + // 构建查询 + IQueryable systemDocQuery; + + if (context.Message.NewUserTypeIds != null && context.Message.NewUserTypeIds.Any()) { - IsSystemDoc = true, - Id = sysDoc.Id, - CreateTime = sysDoc.CreateTime, - IsDeleted = sysDoc.IsDeleted, - SignViewMinimumMinutes = sysDoc.SignViewMinimumMinutes, - Name = sysDoc.Name, - Path = sysDoc.Path, - FileTypeId = sysDoc.FileTypeId, - UpdateTime = sysDoc.UpdateTime, - ConfirmUserId = identityUser.Id, - RealName = identityUser.FullName, - UserName = identityUser.UserName, - IsNeedSendEmial = identityUser.IsZhiZhun || (!identityUser.IsZhiZhun && sysDoc.DocUserSignType == DocUserSignType.InnerAndOuter), - FullFilePath = sysDoc.Path - }; - } - var datalist = await systemDocQuery.IgnoreQueryFilters().Where(x => x.IsNeedSendEmial).ToListAsync(); - - var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); - var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); - int index = 1; - foreach (var userinfo in userinfoList) - { - string msg = $"{index}生效通知,邮箱:{userinfo.EMail},姓名{userinfo.UserName},"; - index++; - try - { - - var messageToSend = new MimeMessage(); - //发件地址 - messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); - - - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + // 只查询新增角色的用户 + systemDocQuery = + from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) + from identityUser in _identityUserRepository.AsQueryable(false) + .Where(t => t.Status == UserStateEnum.Enable && + t.UserRoleList.Where(t => t.IsUserRoleDisabled == false) + .Any(t => context.Message.NewUserTypeIds.Contains(t.UserTypeId) && + sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) + select new UnionDocumentWithConfirmInfoView() { - var topicStr = string.Format(input.topicStr, companyName); - - var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.UserName, // 用户名 {0} - _systemEmailConfig.SiteUrl - ); - - return (topicStr, htmlBodyStr); + IsSystemDoc = true, + Id = sysDoc.Id, + CreateTime = sysDoc.CreateTime, + IsDeleted = sysDoc.IsDeleted, + SignViewMinimumMinutes = sysDoc.SignViewMinimumMinutes, + Name = sysDoc.Name, + Path = sysDoc.Path, + FileTypeId = sysDoc.FileTypeId, + UpdateTime = sysDoc.UpdateTime, + ConfirmUserId = identityUser.Id, + RealName = identityUser.FullName, + UserName = identityUser.UserName, + IsNeedSendEmial = identityUser.IsZhiZhun || (!identityUser.IsZhiZhun && sysDoc.DocUserSignType == DocUserSignType.InnerAndOuter), + FullFilePath = sysDoc.Path }; - - var scenario = EmailBusinessScenario.GeneralTraining_EffectiveNotification; - - var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); - - if (emailConfig != null) + } + else + { + // 查询所有相关角色的用户 + systemDocQuery = + from sysDoc in _systemDocumentRepository.AsQueryable(false).Where(x => context.Message.Ids.Contains(x.Id)) + from identityUser in _identityUserRepository.AsQueryable(false) + .Where(t => t.Status == UserStateEnum.Enable && + t.UserRoleList.Where(t => t.IsUserRoleDisabled == false) + .Any(t => sysDoc.NeedConfirmedUserTypeList.AsQueryable().Any(c => c.NeedConfirmUserTypeId == t.UserTypeId))) + select new UnionDocumentWithConfirmInfoView() { - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); + IsSystemDoc = true, + Id = sysDoc.Id, + CreateTime = sysDoc.CreateTime, + IsDeleted = sysDoc.IsDeleted, + SignViewMinimumMinutes = sysDoc.SignViewMinimumMinutes, + Name = sysDoc.Name, + Path = sysDoc.Path, + FileTypeId = sysDoc.FileTypeId, + UpdateTime = sysDoc.UpdateTime, + ConfirmUserId = identityUser.Id, + RealName = identityUser.FullName, + UserName = identityUser.UserName, + IsNeedSendEmial = identityUser.IsZhiZhun || (!identityUser.IsZhiZhun && sysDoc.DocUserSignType == DocUserSignType.InnerAndOuter), + FullFilePath = sysDoc.Path + }; + } + var datalist = await systemDocQuery.IgnoreQueryFilters().Where(x => x.IsNeedSendEmial).ToListAsync(); + var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); + var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); + + var scenario = EmailBusinessScenario.GeneralTraining_EffectiveNotification; + var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); + if (emailConfig == null) + { + return; + } + + var userWorkLanguageList = userinfoList.Select(x => x.UserWorkLanguage).Distinct().ToList(); + foreach (var workLanguage in userWorkLanguageList) + { + var langUserInfoList = userinfoList.Where(x => x.UserWorkLanguage == workLanguage).ToList(); + if (!langUserInfoList.Any()) + { + continue; + } + + string msg = $"{langUserInfoList.Count}生效通知,"; + try + { + var messageToSend = new MimeMessage(); + messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); + + foreach (var userinfo in langUserInfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } + + var userIsEn_US = workLanguage == UserWorkLanguage.US; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var userNames = langUserInfoList.Select(x => x.UserName).ToList(); + + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => + { + var topicStr = string.Format(input.topicStr, companyName); + + var htmlBodyStr = string.Format( + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), + _systemEmailConfig.SiteUrl + ); + + return (topicStr, htmlBodyStr); + }; + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); msg += "发送成功"; + + } + catch (Exception) + { + msg += "发送失败"; + } - } - catch (Exception) - { - msg += "发送失败"; - + Console.WriteLine(msg); } - - Console.WriteLine(msg); } - } } } diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs index 431d26c67..64dd23042 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs @@ -2,6 +2,9 @@ using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.MassTransit.Consumer; +using IRaCIS.Core.Application.Service.Reading.Dto; +using IRaCIS.Core.Domain.Models; +using IRaCIS.Core.Domain.Share; using MassTransit; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -97,46 +100,65 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); Console.WriteLine("发送定时项目过期提醒:人员数量" + userinfoList.Count); - int index = 1; - foreach (var userinfo in userinfoList) + + var scenario = EmailBusinessScenario.TrialTraining_ExpirationNotification; + var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); + if (emailConfig == null) + { + return; + } + + var userTrialIdList = datalist.Select(t => new { t.ConfirmUserId, t.TrialId }).Distinct().ToList(); + var userWithTrialList = (from ut in userTrialIdList + join u in userinfoList on ut.ConfirmUserId equals u.Id + select new { ut.TrialId, User = u }).ToList(); + + var groupedList = userWithTrialList.GroupBy(x => new { x.TrialId, x.User.UserWorkLanguage }).ToList(); + foreach (var groupItem in groupedList) { try { - Console.WriteLine($"{index}发送定时过期提醒,邮箱:{userinfo.EMail},姓名{userinfo.UserName}"); - index++; - var trialInfo = _trialRepository.Where(x => x.Id == userinfo.TrialId).FirstOrDefault(); + var langUserInfoList = groupItem.Select(x => x.User).Distinct().ToList(); + if (!langUserInfoList.Any()) + { + continue; + } + + Console.WriteLine($"发送定时过期提醒,数量:{langUserInfoList.Count}"); + + var trialInfo = await _trialRepository.Where(x => x.Id == groupItem.Key.TrialId).FirstOrDefaultAsync(); + if (trialInfo == null) + { + continue; + } + + var workLanguage = groupItem.Key.UserWorkLanguage; + var userIsEn_US = workLanguage == UserWorkLanguage.US; var messageToSend = new MimeMessage(); - //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + foreach (var userinfo in langUserInfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var userNames = langUserInfoList.Select(x => x.UserName).ToList(); Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.UserName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), _systemEmailConfig.SiteUrl ); return (topicStr, htmlBodyStr); }; - var scenario = EmailBusinessScenario.TrialTraining_ExpirationNotification; - - var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); - - if (emailConfig != null) - { - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); - } - + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } catch (Exception) @@ -253,52 +275,65 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var confirmUserIdList = datalist.Select(t => t.ConfirmUserId).Distinct().ToList(); var userinfoList = await _identityUserRepository.Where(x => confirmUserIdList.Contains(x.Id)).ToListAsync(); - int index = 1; - foreach (var userinfo in userinfoList) + + var scenario = EmailBusinessScenario.TrialTraining_EffectiveNotification; + var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault(); + if (emailConfig == null) { - string msg = $"{index}项目生效通知,邮箱:{userinfo.EMail},姓名{userinfo.UserName},"; - index++; + return; + } + + var userTrialIdList = datalist.Select(t => new { t.ConfirmUserId, t.TrialId }).Distinct().ToList(); + var userWithTrialList = (from ut in userTrialIdList + join u in userinfoList on ut.ConfirmUserId equals u.Id + select new { ut.TrialId, User = u }).ToList(); + + var groupedList = userWithTrialList.GroupBy(x => new { x.TrialId, x.User.UserWorkLanguage }).ToList(); + foreach (var groupItem in groupedList) + { + var langUserInfoList = groupItem.Select(x => x.User).Distinct().ToList(); + if (!langUserInfoList.Any()) + { + continue; + } + + string msg = $"{langUserInfoList.Count}项目生效通知,"; try { - var messageToSend = new MimeMessage(); - //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); - messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + foreach (var userinfo in langUserInfoList) + { + messageToSend.To.Add(new MailboxAddress(userinfo.FullName, userinfo.EMail)); + } - - var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var workLanguage = groupItem.Key.UserWorkLanguage; + var userIsEn_US = workLanguage == UserWorkLanguage.US; + var companyName = userIsEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var userNames = langUserInfoList.Select(x => x.UserName).ToList(); Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); var htmlBodyStr = string.Format( - CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr), - userinfo.UserName, // 用户名 {0} + CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), + string.Join(',', userNames), _systemEmailConfig.SiteUrl ); return (topicStr, htmlBodyStr); }; + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc, workLanguage); - var scenario = EmailBusinessScenario.TrialTraining_EffectiveNotification; - - var emailConfig = _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario && t.IsEnable).FirstOrDefault(); - - if (emailConfig != null) + var trialInfo = await _trialRepository.Where(x => x.Id == groupItem.Key.TrialId).FirstOrDefaultAsync(); + if (trialInfo == null) { - await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - - var trial = datalist.Where(x => x.ConfirmUserId == userinfo.Id).FirstOrDefault(); - - var trialInfo = await _trialRepository.Where(x=>x.Id==trial.TrialId).FirstNotNullAsync(); - - - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); - msg += "发送成功"; + continue; } + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); + msg += "发送成功"; } catch (Exception) diff --git a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs index 2a8acf366..57db0a338 100644 --- a/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/TaskMedicalReviewService.cs @@ -54,8 +54,8 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum) .WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) - .WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid) - .WhereIf(inQuery.IsHaveQuestion != null, t => t.IsHaveQuestion == inQuery.IsHaveQuestion) + .WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid) + .WhereIf(inQuery.IsHaveQuestion != null, t => t.IsHaveQuestion == inQuery.IsHaveQuestion) .WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime >= inQuery.BeginAllocateDate) .WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime <= inQuery.EndAllocateDate) @@ -211,23 +211,23 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inQuery.SubjectId != null, t => t.VisitTask.SubjectId == inQuery.SubjectId) .WhereIf(inQuery.TrialSiteId != null, t => t.VisitTask.Subject.TrialSiteId == inQuery.TrialSiteId) .WhereIf(inQuery.IsUrgent != null, t => t.VisitTask.IsUrgent == inQuery.IsUrgent) - .WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState) - .WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum) - .WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState) - .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode) || t.VisitTask.Subject.MedicalNo.Contains(inQuery.SubjectCode)) - .WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.VisitTask.TaskName.Contains(inQuery.TaskName) || t.VisitTask.TaskBlindName.Contains(inQuery.TaskName)) + .WhereIf(inQuery.AuditState != null, t => t.AuditState == inQuery.AuditState) + .WhereIf(inQuery.DoctorUserIdeaEnum != null, t => t.DoctorUserIdeaEnum == inQuery.DoctorUserIdeaEnum) + .WhereIf(inQuery.TaskState != null, t => t.VisitTask.TaskState == inQuery.TaskState) + .WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => t.VisitTask.Subject.Code.Contains(inQuery.SubjectCode) || t.VisitTask.Subject.MedicalNo.Contains(inQuery.SubjectCode)) + .WhereIf(!string.IsNullOrEmpty(inQuery.TaskName), t => t.VisitTask.TaskName.Contains(inQuery.TaskName) || t.VisitTask.TaskBlindName.Contains(inQuery.TaskName)) .WhereIf(inQuery.DoctorUserId != null, t => t.VisitTask.DoctorUserId == inQuery.DoctorUserId) .WhereIf(inQuery.ReadingCategory != null, t => t.VisitTask.ReadingCategory == inQuery.ReadingCategory) .WhereIf(inQuery.ReadingTaskState != null, t => t.VisitTask.ReadingTaskState == inQuery.ReadingTaskState) - .WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid) + .WhereIf(inQuery.IsInvalid != null, t => t.IsInvalid == inQuery.IsInvalid) .WhereIf(inQuery.IsGetBeRead, x => !x.IsInvalid && x.AuditState != MedicalReviewAuditState.HaveSigned) - .WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) - .WhereIf(inQuery.BeginAuditSignTime != null, t => t.AuditSignTime >= inQuery.BeginAuditSignTime) - .WhereIf(inQuery.EndAuditSignTime != null, t => t.AuditSignTime <= inQuery.EndAuditSignTime) - .WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime >= inQuery.BeginAllocateDate) + .WhereIf(inQuery.TrialReadingCriterionId != null, t => t.VisitTask.TrialReadingCriterionId == inQuery.TrialReadingCriterionId) + .WhereIf(inQuery.BeginAuditSignTime != null, t => t.AuditSignTime >= inQuery.BeginAuditSignTime) + .WhereIf(inQuery.EndAuditSignTime != null, t => t.AuditSignTime <= inQuery.EndAuditSignTime) + .WhereIf(inQuery.BeginAllocateDate != null, t => t.AllocateTime >= inQuery.BeginAllocateDate) .WhereIf(inQuery.EndAllocateDate != null, t => t.AllocateTime <= inQuery.EndAllocateDate) - .WhereIf(inQuery.ArmEnum != null, t => t.VisitTask.ArmEnum == inQuery.ArmEnum) + .WhereIf(inQuery.ArmEnum != null, t => t.VisitTask.ArmEnum == inQuery.ArmEnum) .WhereIf(inQuery.MedicalManagerUserId != null, t => t.MedicalManagerUserId == inQuery.MedicalManagerUserId) .WhereIf(inQuery.BeginSignTime != null, t => t.VisitTask.SignTime > inQuery.BeginSignTime) .WhereIf(inQuery.EndSignTime != null, t => t.VisitTask.SignTime < inQuery.EndSignTime) diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs index ccdae5dfa..5a48de460 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskHelpeService.cs @@ -873,7 +873,7 @@ namespace IRaCIS.Core.Application.Service { arm1.TaskAllocationState = TaskAllocationState.Allocated; arm1.AllocateTime = DateTime.Now; - arm1.DoctorUserId = task1.DoctorUserId; + arm1.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm1)!.DoctorUserId; arm1.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } @@ -913,7 +913,7 @@ namespace IRaCIS.Core.Application.Service { taskOne.TaskAllocationState = TaskAllocationState.Allocated; taskOne.AllocateTime = DateTime.Now; - taskOne.DoctorUserId = task1!.DoctorUserId; + taskOne.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm1)!.DoctorUserId; taskOne.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } @@ -944,7 +944,7 @@ namespace IRaCIS.Core.Application.Service { arm2.TaskAllocationState = TaskAllocationState.Allocated; arm2.AllocateTime = DateTime.Now; - arm2.DoctorUserId = task2.DoctorUserId; + arm2.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm2)!.DoctorUserId; arm2.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } @@ -986,7 +986,7 @@ namespace IRaCIS.Core.Application.Service { taskTwo.TaskAllocationState = TaskAllocationState.Allocated; taskTwo.AllocateTime = DateTime.Now; - taskTwo.DoctorUserId = task2!.DoctorUserId; + taskTwo.DoctorUserId = assignConfigList.FirstOrDefault(t => t.ArmEnum == Arm.DoubleReadingArm2)!.DoctorUserId; taskTwo.SuggesteFinishedTime = GetSuggessFinishTime(true, UrgentType.NotUrget); } diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs index 8ce671d6c..ca5e3c1e1 100644 --- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs +++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs @@ -1016,9 +1016,9 @@ public class VisitTaskService(IRepository _visitTaskRepository, if (critrion.IsReadingTaskViewInOrder == ReadingOrder.InOrder) { - var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr }).FirstOrDefault(); + var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsOpenLostVistRead }).FirstOrDefault(); - var extralConfig = JsonConvert.DeserializeObject(extralObj?.TrialExtraConfigJsonStr) ?? new TrialExtraConfig(); + //var extralConfig = JsonConvert.DeserializeObject(extralObj?.TrialExtraConfigJsonStr) ?? new TrialExtraConfig(); var visitQuery = _visitTaskRepository.Where(x => x.TrialId == inQuery.TrialId && x.DoctorUserId == _userInfo.UserRoleId && x.TaskState == TaskState.Effect && x.Subject.IsSubjectQuit == false) @@ -1027,7 +1027,7 @@ public class VisitTaskService(IRepository _visitTaskRepository, .WhereIf(critrion.IsAutoCreate == false, t => !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum)) // 前序 不存在 未一致性核查未通过的 - .Where(t => !t.Subject.SubjectVisitList.Where(t => extralConfig.IsOpenLostVistRead ? t.IsLostVisit == false : true).Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum >= sv.VisitNum)) + .Where(t => !t.Subject.SubjectVisitList.Where(t => extralObj.IsOpenLostVistRead ? t.IsLostVisit == false : true).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) @@ -1050,14 +1050,14 @@ public class VisitTaskService(IRepository _visitTaskRepository, UnReadTaskCount = x.Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned).Count(), //未读 里可读任务量 - UnReadCanReadTaskCount = x.Where(t => extralConfig.IsOpenLostVistRead ? true : t.IsFrontTaskNeedSignButNotSign == false).Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true) + UnReadCanReadTaskCount = x.Where(t => extralObj.IsOpenLostVistRead ? true : t.IsFrontTaskNeedSignButNotSign == false).Where(y => y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned && (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true) //不能对包含聚合或子查询的表达式执行聚合函数 //&& !x.Any(t => t.ReadingTaskState != ReadingTaskState.HaveSigned && t.IsNeedClinicalDataSign == true && t.IsClinicalDataSign == false && t.VisitTaskNum y.TrialReadingCriterionId == trialReadingCriterionId && y.ReadingTaskState != ReadingTaskState.HaveSigned) - .Where(t => extralConfig.IsOpenLostVistRead ? true : t.IsFrontTaskNeedSignButNotSign == false) + .Where(t => extralObj.IsOpenLostVistRead ? true : t.IsFrontTaskNeedSignButNotSign == false) .Where(y => /*y.IsFrontTaskNeedSignButNotSign == false &&*/ (y.IsNeedClinicalDataSign == false || y.IsClinicalDataSign == true)) .OrderBy(x => x.VisitTaskNum) .Select(u => new IRUnreadTaskView() @@ -2716,6 +2716,19 @@ public class VisitTaskService(IRepository _visitTaskRepository, sv.ReviewAuditUserId = null; sv.SecondReviewState = SecondReviewState.None; + + // 处理阅片期的临床数据 + var readModuleIdList =await _readModuleRepository.Where(x => x.SubjectVisitId == sv.Id).Select(x => x.Id).ToListAsync(); + + + await _readingClinicalDataReposiotry.UpdatePartialFromQueryAsync(t => readModuleIdList.Contains(t.ReadingId), c => new ReadingClinicalData() + { + IsSign = false, + ReadingClinicalDataState = ReadingClinicalDataStatus.HaveUploaded, + }); + + + if (sv.IsBaseLine) { await _readingClinicalDataReposiotry.UpdatePartialFromQueryAsync(t => t.ReadingId == sv.Id && (t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit), c => new ReadingClinicalData() { IsSign = false, ReadingClinicalDataState = ReadingClinicalDataStatus.HaveUploaded }); diff --git a/IRaCIS.Core.Application/Service/Common/DeployConfigService.cs b/IRaCIS.Core.Application/Service/Common/DeployConfigService.cs new file mode 100644 index 000000000..6edfeeac6 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Common/DeployConfigService.cs @@ -0,0 +1,130 @@ +using DocumentFormat.OpenXml.Spreadsheet; +using IRaCIS.Application.Contracts; +using Medallion.Threading; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Options; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Application.Service.Common; + +[ApiExplorerSettings(GroupName = "Common")] +public class DeployConfigService(IMapper _mapper, IUserInfo _userInfo, IWebHostEnvironment _hostEnvironment, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService +{ + + /// + /// 获取系统基础配置信息 + /// + /// + /// + public async Task GetSystemBasicConfigInfo([FromServices] IOptionsMonitor options) + { + return options.CurrentValue; + } + + /// + /// 更新系统基础配置 + /// + /// + /// + [HttpPost] + public async Task UpdateSystemBasicConfig(ServiceVerifyConfigOption basicSystemConfigOption) + { + var path = $"appsettings.{_hostEnvironment.EnvironmentName}.json"; + + string text = System.IO.File.ReadAllText(path); + + // 修改 + JObject obj = JObject.Parse(text); + // QCRiskControl 相关配置 + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.QCRiskControl)] = basicSystemConfigOption.QCRiskControl; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.OpenUserComplexPassword)] = basicSystemConfigOption.OpenUserComplexPassword; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.OpenSignDocumentBeforeWork)] = basicSystemConfigOption.OpenSignDocumentBeforeWork; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.OpenTrialRelationDelete)] = basicSystemConfigOption.OpenTrialRelationDelete; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.OpenLoginLimit)] = basicSystemConfigOption.OpenLoginLimit; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.LoginMaxFailCount)] = basicSystemConfigOption.LoginMaxFailCount; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.LoginFailLockMinutes)] = basicSystemConfigOption.LoginFailLockMinutes; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.AutoLoginOutMinutes)] = basicSystemConfigOption.AutoLoginOutMinutes; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.OpenLoginMFA)] = basicSystemConfigOption.OpenLoginMFA; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.ContinuousReadingTimeMin)] = basicSystemConfigOption.ContinuousReadingTimeMin; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.ReadingRestTimeMin)] = basicSystemConfigOption.ReadingRestTimeMin; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.IsNeedChangePassWord)] = basicSystemConfigOption.IsNeedChangePassWord; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.ChangePassWordDays)] = basicSystemConfigOption.ChangePassWordDays; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.TemplateType)] = ((int)basicSystemConfigOption.TemplateType); // 枚举需要转换为字符串 + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.ThirdPdfUrl)] = basicSystemConfigOption.ThirdPdfUrl; + obj["BasicSystemConfig"][nameof(ServiceVerifyConfigOption.UserMFAVerifyMinutes)] = basicSystemConfigOption.UserMFAVerifyMinutes; + + + // 重新写入appsettings.json + string result = obj.ToString(); + System.IO.File.WriteAllText(path, result); + + + return ResponseOutput.Ok(); + } + + /// + /// 获取系统邮件配置信息 + /// + /// + /// + public async Task GetEmailConfigInfo([FromServices] IOptionsMonitor options) + { + return options.CurrentValue; + } + + + /// + /// 更新系统邮件配置 + /// + /// + /// + [HttpPost] + public async Task UpdateSystemEmailConfig(SystemEmailSendConfig emailConfig) + { + var path = $"appsettings.{_hostEnvironment.EnvironmentName}.json"; + + string text = System.IO.File.ReadAllText(path); + + // 修改 + JObject obj = JObject.Parse(text); + + // SystemEmailSendConfig 相关配置 + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.Port)] = emailConfig.Port; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.Host)] = emailConfig.Host; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.Imap)] = emailConfig.Imap; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.ImapPort)] = emailConfig.ImapPort; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.FromEmail)] = emailConfig.FromEmail; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.FromName)] = emailConfig.FromName; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.AuthorizationCode)] = emailConfig.AuthorizationCode; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.SiteUrl)] = emailConfig.SiteUrl; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.PlatformName)] = emailConfig.PlatformName; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.PlatformNameCN)] = emailConfig.PlatformNameCN; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.SystemShortName)] = emailConfig.SystemShortName; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.OrganizationName)] = emailConfig.OrganizationName; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.OrganizationNameCN)] = emailConfig.OrganizationNameCN; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.CompanyName)] = emailConfig.CompanyName; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.CompanyNameCN)] = emailConfig.CompanyNameCN; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.CompanyShortName)] = emailConfig.CompanyShortName; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.CompanyShortNameCN)] = emailConfig.CompanyShortNameCN; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.IsEnv_US)] = emailConfig.IsEnv_US; + obj["SystemEmailSendConfig"][nameof(SystemEmailSendConfig.EmailRegexStr)] = emailConfig.EmailRegexStr; + + + + // 重新写入appsettings.json + string result = obj.ToString(); + System.IO.File.WriteAllText(path, result); + + + return ResponseOutput.Ok(); + } + +} diff --git a/IRaCIS.Core.Application/Service/Common/FileUploadRecordService.cs b/IRaCIS.Core.Application/Service/Common/FileUploadRecordService.cs index 3c367627c..78e02246c 100644 --- a/IRaCIS.Core.Application/Service/Common/FileUploadRecordService.cs +++ b/IRaCIS.Core.Application/Service/Common/FileUploadRecordService.cs @@ -222,7 +222,7 @@ public class FileUploadRecordService(IRepository _fileUploadRe { addOrEditFileUploadRecord.IsNeedSync = true; - addOrEditFileUploadRecord.Priority = 0; + addOrEditFileUploadRecord.Priority = addOrEditFileUploadRecord.Priority?? 0; addOrEditFileUploadRecord.IsSync = false; } @@ -242,7 +242,7 @@ public class FileUploadRecordService(IRepository _fileUploadRe addOrEditFileUploadRecord.IsSync = false; - addOrEditFileUploadRecord.Priority = 0; + addOrEditFileUploadRecord.Priority = addOrEditFileUploadRecord.Priority ?? 0; } var entity = await _fileUploadRecordRepository.InsertOrUpdateAsync(addOrEditFileUploadRecord, true); diff --git a/IRaCIS.Core.Application/Service/Common/MailService.cs b/IRaCIS.Core.Application/Service/Common/MailService.cs index 3b2a2e427..3e54c32e9 100644 --- a/IRaCIS.Core.Application/Service/Common/MailService.cs +++ b/IRaCIS.Core.Application/Service/Common/MailService.cs @@ -1,6 +1,8 @@ -using IRaCIS.Application.Contracts; +using DocumentFormat.OpenXml.Spreadsheet; +using IRaCIS.Application.Contracts; using IRaCIS.Core.Application.Auth; using IRaCIS.Core.Application.Helper; +using IRaCIS.Core.Application.MassTransit.Consumer; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; @@ -66,7 +68,7 @@ namespace IRaCIS.Core.Application.Service Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl); - Task AdminResetPwdSendEmailAsync(Guid userId, string pwdNotMd5 = "123456", string baseUrl=""); + Task AdminResetPwdSendEmailAsync(Guid userId, string pwdNotMd5 = "123456", string baseUrl = ""); Task SiteSurveyUserJoinEmail(Guid trialId, Guid userId, string userTypes, string baseUrl, string rootUrl); @@ -104,10 +106,18 @@ namespace IRaCIS.Core.Application.Service { private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue; - + /// + /// 获取邮件主题和html 通用封装 以用户语言为主,没有的就用当前的请求语言_userInfo.IsEn_Us + /// + /// + /// + /// + /// + /// + /// private async Task GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario scenario, MimeMessage messageToSend, - Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailFunc) + Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailFunc, UserWorkLanguage? userWorkLanguage = null) { var configInfo = await _emailNoticeConfigrepository.Where(t => t.BusinessScenarioEnum == scenario).FirstOrDefaultAsync(); @@ -119,7 +129,9 @@ namespace IRaCIS.Core.Application.Service } - var (topicStr, htmlBodyStr) = _userInfo.IsEn_Us ? (configInfo.EmailTopic, configInfo.EmailHtmlContent) : (configInfo.EmailTopicCN, configInfo.EmailHtmlContentCN); + bool isEn_Us = userWorkLanguage.HasValue ? userWorkLanguage.Value == UserWorkLanguage.US : _userInfo.IsEn_Us; + + var (topicStr, htmlBodyStr) = isEn_Us ? (configInfo.EmailTopic, configInfo.EmailHtmlContent) : (configInfo.EmailTopicCN, configInfo.EmailHtmlContentCN); try { @@ -182,24 +194,16 @@ namespace IRaCIS.Core.Application.Service return sucessHandle; } - private string ReplaceCompanyName(string needDealtxt) - { - var str = needDealtxt.Replace("{company}", _userInfo.IsEn_Us ? _systemEmailConfig.CompanyName : _systemEmailConfig.CompanyNameCN) - .Replace("{company abbreviation}", _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN); - return str; - } - private string ReplacePlatformName(string needDealtxt) - { - var platformName = _userInfo.IsEn_Us ? _systemEmailConfig.PlatformName : _systemEmailConfig.PlatformNameCN; - - var str = needDealtxt.Replace("{platformName}", platformName); - return str; - } //MFA public async Task SenMFAVerifyEmail(Guid userId, string userName, string emailAddress, int verificationCode, UserMFAType mfaType = UserMFAType.Login) { + + //设置工作语言 + var workLanguage = _identityUserRepository.Where(t => t.Id == userId).Select(t => t.UserWorkLanguage).First(); + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -207,13 +211,13 @@ namespace IRaCIS.Core.Application.Service messageToSend.To.Add(new MailboxAddress(userName, emailAddress)); //主题---[来自{0}] 关于MFA邮箱验证的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userName, verificationCode ); @@ -222,7 +226,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(mfaType == UserMFAType.Login ? EmailBusinessScenario.MFALogin : EmailBusinessScenario.MFAUnlock, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(mfaType == UserMFAType.Login ? EmailBusinessScenario.MFALogin : EmailBusinessScenario.MFAUnlock, messageToSend, emailConfigFunc, workLanguage); var sucessHandle = GetEmailSuccessHandle(userId, verificationCode, emailAddress); @@ -245,6 +249,11 @@ namespace IRaCIS.Core.Application.Service public async Task SendEmailVerification(string emailAddress, int verificationCode) { + //设置工作语言 + var isEn_US = _userInfo.IsEn_Us; + var workLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; + + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -253,13 +262,13 @@ namespace IRaCIS.Core.Application.Service //主题 //---[来自展影IRC]的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), "Sir/Madam", //---您正在参与展影医疗IRC项目 @@ -271,7 +280,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.ReviewerLogin, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.ReviewerLogin, messageToSend, emailConfigFunc, workLanguage); //此时不知道用户 var sucessHandle = GetEmailSuccessHandle(Guid.Empty, verificationCode, emailAddress); @@ -286,8 +295,10 @@ namespace IRaCIS.Core.Application.Service //中心调研 登陆 发送验证码 public async Task AnolymousSendEmail(Guid trialId, string emailAddress, int verificationCode) { - //throw new BusinessValidationFailedException("模拟邮件取数据或者发送异常!!!"); + //设置工作语言 + var isEn_US = _userInfo.IsEn_Us; + var workLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); @@ -299,13 +310,13 @@ namespace IRaCIS.Core.Application.Service //主题 //$"[来自展影IRC] [{researchProgramNo}] 关于中心调研的提醒"; - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), "Sir/Madam", //---您正在参与展影医疗IRC项目中心调研工作 @@ -317,13 +328,13 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurveyLogin, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurveyLogin, messageToSend, emailConfigFunc, workLanguage); //此时不知道用户 var sucessHandle = GetEmailSuccessHandle(Guid.Empty, verificationCode, emailAddress); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo, sucessHandle); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo, sucessHandle); } @@ -335,6 +346,9 @@ namespace IRaCIS.Core.Application.Service var sysUserInfo = (await _identityUserRepository.Where(t => t.Id == userId).Include(t => t.UserRoleList).ThenInclude(c => c.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException(); + //设置工作语言 + var workLanguage = sysUserInfo.UserWorkLanguage; + var isEn_US = workLanguage == UserWorkLanguage.US; var messageToSend = new MimeMessage(); //发件地址 @@ -349,20 +363,19 @@ namespace IRaCIS.Core.Application.Service await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == sysUserInfo.Id, u => new IdentityUser() { EmailToken = token }); - routeUrl = routeUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&lang=" + (_userInfo.IsEn_Us ? "en" : "zh") + "&access_token=" + token; + routeUrl = routeUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&UserName=" + sysUserInfo.UserName + "&lang=" + (isEn_US ? "en" : "zh") + "&access_token=" + token; var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login")); var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}"; - - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), sysUserInfo.FullName, sysUserInfo.EMail, @@ -374,7 +387,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SysCreateUser, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SysCreateUser, messageToSend, emailConfigFunc, sysUserInfo.UserWorkLanguage); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); @@ -385,6 +398,11 @@ namespace IRaCIS.Core.Application.Service { var sysUserInfo = (await _identityUserRepository.Where(t => t.Id == userId).Include(t => t.UserRoleList).ThenInclude(c => c.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException(); + + //设置工作语言 + var workLanguage = sysUserInfo.UserWorkLanguage; + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -393,13 +411,13 @@ namespace IRaCIS.Core.Application.Service //主题 //---[来自展影IRC] 关于重置账户密码的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), sysUserInfo.FullName, sysUserInfo.UserName, @@ -413,7 +431,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SysResetPassword, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SysResetPassword, messageToSend, emailConfigFunc, sysUserInfo.UserWorkLanguage); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -421,6 +439,10 @@ namespace IRaCIS.Core.Application.Service //用户重置邮箱 public async Task SendMailEditEmail(Guid userId, string userName, string emailAddress, int verificationCode) { + //设置工作语言 + var workLanguage = _identityUserRepository.Where(t => t.Id == userId).Select(t => t.UserWorkLanguage).First(); + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 @@ -430,13 +452,13 @@ namespace IRaCIS.Core.Application.Service //主题 //---[来自展影IRC] 关于重置邮箱的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userName, //---您正在进行邮箱重置操作 @@ -447,7 +469,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.UserResetEmail, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.UserResetEmail, messageToSend, emailConfigFunc, workLanguage); var sucessHandle = GetEmailSuccessHandle(userId, verificationCode, emailAddress); @@ -460,6 +482,11 @@ namespace IRaCIS.Core.Application.Service //不登录 通过邮箱重置密码 public async Task AnolymousSendEmailForResetAccount(string emailAddress, int verificationCode) { + + //设置工作语言 + var isEn_US = _userInfo.IsEn_Us; + var workLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -467,13 +494,13 @@ namespace IRaCIS.Core.Application.Service messageToSend.To.Add(new MailboxAddress(String.Empty, emailAddress)); - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), "Sir/Madam", //---您正在进行邮箱重置密码操作 @@ -484,7 +511,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.UnloginUseEmailResetPassword, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.UnloginUseEmailResetPassword, messageToSend, emailConfigFunc, workLanguage); ////此时不知道用户 var sucessHandle = GetEmailSuccessHandle(Guid.Empty, verificationCode, emailAddress); @@ -500,6 +527,11 @@ namespace IRaCIS.Core.Application.Service var sysUserInfo = (await _identityUserRepository.Where(t => t.Id == userId).FirstOrDefaultAsync()).IfNullThrowException(); + //设置工作语言 + var workLanguage = sysUserInfo.UserWorkLanguage; + var isEn_US = workLanguage == UserWorkLanguage.US; + + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -518,18 +550,18 @@ namespace IRaCIS.Core.Application.Service var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login")); - var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&lang=" + (_userInfo.IsEn_Us ? "en" : "zh") + "&access_token=" + token; + var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&lang=" + (isEn_US ? "en" : "zh") + "&access_token=" + token; var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}"; - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), sysUserInfo.FullName, trialInfo.ExperimentName, @@ -544,9 +576,9 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.SiteUseOrExternalUserFirstrJoinTrial : EmailBusinessScenario.SiteUserOrExternalUserExistJoinTrial, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.SiteUseOrExternalUserFirstrJoinTrial : EmailBusinessScenario.SiteUserOrExternalUserExistJoinTrial, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo, null); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } @@ -555,10 +587,12 @@ namespace IRaCIS.Core.Application.Service { var sysUserInfo = (await _identityUserRepository.Where(t => t.Id == userId).FirstOrDefaultAsync()).IfNullThrowException(); - - var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); + //设置工作语言 + var workLanguage = sysUserInfo.UserWorkLanguage; + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -575,20 +609,20 @@ namespace IRaCIS.Core.Application.Service await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == sysUserInfo.Id, u => new Domain.Models.IdentityUser() { EmailToken = token }); } - var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&lang=" + (_userInfo.IsEn_Us ? "en" : "zh") + "&access_token=" + token; + var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&lang=" + (isEn_US ? "en" : "zh") + "&access_token=" + token; var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login")); var redirectUrl = $"{domain}/api/User/UserRedirect?url={System.Web.HttpUtility.UrlEncode(routeUrl)}"; - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), sysUserInfo.FullName, trialInfo.ExperimentName, @@ -603,9 +637,9 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.SiteUseOrExternalUserFirstrJoinTrial : EmailBusinessScenario.SiteUserOrExternalUserExistJoinTrial, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.SiteUseOrExternalUserFirstrJoinTrial : EmailBusinessScenario.SiteUserOrExternalUserExistJoinTrial, messageToSend, emailConfigFunc, workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } @@ -644,6 +678,12 @@ namespace IRaCIS.Core.Application.Service saveItem.IsTestUser = true; } + + //通过医生信息,设置工作语言 + var nation = _doctorTypeRepository.Where(t => t.Id == doctorId).Select(t => t.Nation).FirstOrDefault(); + saveItem.UserWorkLanguage = nation == DoctorNation.CN ? UserWorkLanguage.CN : UserWorkLanguage.US; + + saveItem.UserCeateSource = UserCeateSource.ReviewerSelect; saveItem.TrialId = trialId; @@ -686,6 +726,11 @@ namespace IRaCIS.Core.Application.Service var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); + + //设置工作语言 + var workLanguage = sysUserInfo.UserWorkLanguage; + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -701,7 +746,7 @@ namespace IRaCIS.Core.Application.Service await _identityUserRepository.BatchUpdateNoTrackingAsync(t => t.Id == sysUserInfo.Id, u => new Domain.Models.IdentityUser() { EmailToken = token }); } - var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&lang=" + (_userInfo.IsEn_Us ? "en" : "zh") + "&access_token=" + token; + var routeUrl = rootUrl + "?UserId=" + sysUserInfo.Id + "&Email=" + sysUserInfo.EMail + "&lang=" + (isEn_US ? "en" : "zh") + "&access_token=" + token; var domain = baseUrl.Substring(0, baseUrl.IndexOf("/login")); @@ -711,13 +756,13 @@ namespace IRaCIS.Core.Application.Service // $"[来自展影IRC] [{trialInfo.ResearchProgramNo}]邀请信"; - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), sysUserInfo.FullName, trialInfo.ExperimentName, @@ -732,9 +777,9 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.DoctorUserFirstJoinTrial : EmailBusinessScenario.DoctorUserExistJoinTrial, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.DoctorUserFirstJoinTrial : EmailBusinessScenario.DoctorUserExistJoinTrial, messageToSend, emailConfigFunc,workLanguage); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo, null); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo, null); //创建账号 和创建角色 一条,更新的时候才记录更新角色 if (isNeedCreateNewUser == false) @@ -754,6 +799,10 @@ namespace IRaCIS.Core.Application.Service { var feedBack = await _userFeedBackRepository.Where(t => t.Id == feedBackId).Include(t => t.CreateUserRole.UserTypeRole).Include(t => t.CreateUserRole.IdentityUser).FirstNotNullAsync(); + //设置工作语言 + var workLanguage = _identityUserRepository.Where(t => t.Id == _userInfo.IdentityUserId).Select(t => t.UserWorkLanguage).First(); + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -762,7 +811,7 @@ namespace IRaCIS.Core.Application.Service var trialinfo = await _trialRepository.Where(x => x.Id == feedBack.TrialId).FirstOrDefaultAsync(); - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; var emialScenario = feedBack.VisitTaskId != null ? EmailBusinessScenario.IRImageError : (feedBack.SubjectVisitId != null ? EmailBusinessScenario.TrialSubjectVisitFeedBack : (feedBack.TrialId != null ? EmailBusinessScenario.TrialFeedBack : EmailBusinessScenario.SysFeedBack)); @@ -785,7 +834,7 @@ namespace IRaCIS.Core.Application.Service if (feedBack.VisitTaskId != null) { - var emailType = await _dictionaryRepository.Where(t => t.Parent.Code == "FeedBackTypeToIR" && t.ParentId != null && t.Code == ((int)feedBack.QuestionType).ToString()).Select(t => _userInfo.IsEn_Us ? t.Value : t.ValueCN).FirstOrDefaultAsync(); + var emailType = await _dictionaryRepository.Where(t => t.Parent.Code == "FeedBackTypeToIR" && t.ParentId != null && t.Code == ((int)feedBack.QuestionType).ToString()).Select(t => isEn_US ? t.Value : t.ValueCN).FirstOrDefaultAsync(); var info = await _visitTaskRepository.Where(t => t.Id == feedBack.VisitTaskId).Select(t => new { t.Trial.ResearchProgramNo, t.Trial.TrialCode, SubejctCode = t.Subject.Code, t.SourceSubjectVisit.VisitName }).FirstNotNullAsync(); @@ -794,7 +843,7 @@ namespace IRaCIS.Core.Application.Service { var topicStr = string.Format(input.topicStr, info.ResearchProgramNo, info.SubejctCode, info.VisitName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userNames, info.TrialCode, info.SubejctCode, @@ -810,12 +859,12 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.IRImageError, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.IRImageError, messageToSend, emailConfigFunc, workLanguage); } else if (feedBack.SubjectVisitId != null) { - var emailType = await _dictionaryRepository.Where(t => t.Parent.Code == "Email_BusinessScenario" && t.ParentId != null && t.Code == ((int)EmailBusinessScenario.TrialSubjectVisitFeedBack).ToString()).Select(t => _userInfo.IsEn_Us ? t.Value : t.ValueCN).FirstOrDefaultAsync(); + var emailType = await _dictionaryRepository.Where(t => t.Parent.Code == "Email_BusinessScenario" && t.ParentId != null && t.Code == ((int)EmailBusinessScenario.TrialSubjectVisitFeedBack).ToString()).Select(t => isEn_US ? t.Value : t.ValueCN).FirstOrDefaultAsync(); var info = await _subjectVisitRepository.Where(t => t.Id == feedBack.SubjectVisitId).Select(t => new { t.Trial.ResearchProgramNo, t.Trial.TrialCode, SubejctCode = t.Subject.Code, t.VisitName }).FirstNotNullAsync(); @@ -824,7 +873,7 @@ namespace IRaCIS.Core.Application.Service { var topicStr = string.Format(input.topicStr, info.ResearchProgramNo, info.SubejctCode, info.VisitName); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userNames, info.TrialCode, info.SubejctCode, @@ -840,13 +889,13 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.TrialSubjectVisitFeedBack, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.TrialSubjectVisitFeedBack, messageToSend, emailConfigFunc, workLanguage); } //项目相关的反馈 pm admin else if (feedBack.TrialId != null) { - var emailType = await _dictionaryRepository.Where(t => t.Parent.Code == "Email_BusinessScenario" && t.ParentId != null && t.Code == ((int)EmailBusinessScenario.TrialFeedBack).ToString()).Select(t => _userInfo.IsEn_Us ? t.Value : t.ValueCN).FirstOrDefaultAsync(); + var emailType = await _dictionaryRepository.Where(t => t.Parent.Code == "Email_BusinessScenario" && t.ParentId != null && t.Code == ((int)EmailBusinessScenario.TrialFeedBack).ToString()).Select(t => isEn_US ? t.Value : t.ValueCN).FirstOrDefaultAsync(); var info = await _trialRepository.Where(t => t.Id == feedBack.TrialId).Select(t => new { t.ResearchProgramNo, t.TrialCode }).FirstNotNullAsync(); @@ -855,7 +904,7 @@ namespace IRaCIS.Core.Application.Service { var topicStr = string.Format(input.topicStr, info.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userNames, info.TrialCode, feedBack.CreateUserRole.UserTypeRole.UserTypeShortName, @@ -869,7 +918,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.TrialFeedBack, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.TrialFeedBack, messageToSend, emailConfigFunc, workLanguage); } //项目无关的反馈 admin @@ -881,7 +930,7 @@ namespace IRaCIS.Core.Application.Service { var topicStr = string.Format(input.topicStr); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), userNames, feedBack.CreateUserRole.UserTypeRole.UserTypeShortName, feedBack.CreateUserRole.IdentityUser.FullName, @@ -893,7 +942,7 @@ namespace IRaCIS.Core.Application.Service }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SysFeedBack, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SysFeedBack, messageToSend, emailConfigFunc, workLanguage); } if (trialinfo == null) @@ -902,9 +951,9 @@ namespace IRaCIS.Core.Application.Service } else { - await SendEmailHelper.SendEmailAsync(messageToSend, trialinfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialinfo); } - + } @@ -915,6 +964,10 @@ namespace IRaCIS.Core.Application.Service var sysUserInfo = (await _identityUserRepository.Where(t => t.Id == userId).FirstOrDefaultAsync()).IfNullThrowException(); + //设置工作语言 + var workLanguage = sysUserInfo.UserWorkLanguage; + var isEn_US = workLanguage == UserWorkLanguage.US; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -923,22 +976,23 @@ namespace IRaCIS.Core.Application.Service //主题 //---[来自展影IRC] 关于重置邮箱的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName); - var htmlBodyStr = string.Format(ReplacePlatformName(ReplaceCompanyName(input.htmlBodyStr)) , + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), - sysUserInfo.FullName + sysUserInfo.FullName, + _systemEmailConfig.PlatformName ); return (topicStr, htmlBodyStr); }; - await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.IdentityUser_ModifyPassword, messageToSend, emailConfigFunc); + await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.IdentityUser_ModifyPassword, messageToSend, emailConfigFunc, workLanguage); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -948,6 +1002,10 @@ namespace IRaCIS.Core.Application.Service { var trialInfo = await _trialRepository.Where(t => t.Id == trialId).FirstOrDefaultAsync(); + //设置工作语言 + var isEn_US = _userInfo.IsEn_Us; + var workLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -956,14 +1014,14 @@ namespace IRaCIS.Core.Application.Service //主题 //---[来自展影IRC] 关于重置邮箱的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), name, trialInfo.TrialCode, trialInfo.ResearchProgramNo @@ -974,14 +1032,20 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurvey_CheckUser, messageToSend, emailConfigFunc); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } public async Task SiteSuervyUpdateUser(Guid trialSiteId, string email, string name, string url) { - var siteInfo = await _trialSiteRepository.Where(t => t.Id == trialSiteId).Include(x=>x.Trial).FirstOrDefaultAsync(); + var siteInfo = await _trialSiteRepository.Where(t => t.Id == trialSiteId).Include(x => x.Trial).FirstOrDefaultAsync(); var trialInfo = siteInfo.Trial; + + + //设置工作语言 + var isEn_US = _userInfo.IsEn_Us; + var workLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; + var messageToSend = new MimeMessage(); //发件地址 messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail)); @@ -990,14 +1054,14 @@ namespace IRaCIS.Core.Application.Service //主题 //---[来自展影IRC] 关于重置邮箱的提醒 - var companyName = _userInfo.IsEn_Us ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; + var companyName = isEn_US ? _systemEmailConfig.CompanyShortName : _systemEmailConfig.CompanyShortNameCN; Func<(string topicStr, string htmlBodyStr), (string topicStr, string htmlBodyStr)> emailConfigFunc = input => { var topicStr = string.Format(input.topicStr, companyName, trialInfo.ResearchProgramNo); - var htmlBodyStr = string.Format(ReplaceCompanyName(input.htmlBodyStr), + var htmlBodyStr = string.Format(CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, input.htmlBodyStr, workLanguage), name, trialInfo.TrialCode, siteInfo.TrialSiteCode, @@ -1010,7 +1074,7 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurvey_UpdateUser, messageToSend, emailConfigFunc); - await SendEmailHelper.SendEmailAsync(messageToSend, trialInfo); + await SendEmailHelper.SendTrialEmailAsync(messageToSend, trialInfo); } } diff --git a/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs b/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs index f43b076b9..5bf9183b6 100644 --- a/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs +++ b/IRaCIS.Core.Application/Service/Common/TrialImageDownloadService.cs @@ -1,4 +1,5 @@ using Aliyun.OSS; +using CommunityToolkit.HighPerformance; using DocumentFormat.OpenXml.EMMA; using DocumentFormat.OpenXml.Office.CustomUI; using DocumentFormat.OpenXml.Office2010.Excel; @@ -7,7 +8,10 @@ using FellowOakDicom; using FellowOakDicom.Imaging; using FellowOakDicom.Imaging.Render; using FellowOakDicom.IO.Buffer; +using Hangfire.Common; +using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Helper; +using IRaCIS.Core.Application.MassTransit.Command; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Infrastructure; @@ -17,17 +21,22 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using MiniExcelLibs; +using NPOI.Util; +using Org.BouncyCastle.Utilities.Zlib; using SharpCompress.Common; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; +using System.IO.Compression; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Web; +using static IRaCIS.Core.Application.Service.TestService; +using static IRaCIS.Core.Application.Service.TrialImageDownloadService; using static IRaCIS.Core.Domain.Share.StaticData; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; @@ -40,7 +49,7 @@ namespace IRaCIS.Core.Application.Service /// /// [ApiExplorerSettings(GroupName = "Common")] - public class TrialImageDownloadService(IRepository _trialRepository, IOSSService _oSSService, IWebHostEnvironment _hostEnvironment, + public class TrialImageDownloadService(IRepository _trialRepository, IRepository _subjectVisitRepository, IOSSService _oSSService, IWebHostEnvironment _hostEnvironment, IRepository _studyRepository, IRepository _seriesRepository, IRepository _instanceRepository) : BaseService @@ -49,35 +58,970 @@ namespace IRaCIS.Core.Application.Service + private static async Task TryWriteMergedDicomAsync(Func> sourceFactory, Stream output) + { + try + { + #region 方式一 有的必须在内存中,不能用这种 + //await using var source = await sourceFactory(); + //// 如果你是从 stream 打开 + //var dicomFile = await DicomFile.OpenAsync(source); + #endregion + + #region 方式二 + await using var source = await sourceFactory(); + + // 【关键修复】将 OSS 流缓冲到 MemoryStream + using var bufferedStream = new MemoryStream(); + + if (source.CanSeek) + { + source.Position = 0; + + } + else + { + // 完全复制到内存流 + await source.CopyToAsync(bufferedStream); + bufferedStream.Position = 0; // 重置位置 + } + + // 如果你是从 stream 打开 + var dicomFile = await DicomFile.OpenAsync(source.CanSeek ? source : bufferedStream); + #endregion + + + //获取像素是否为封装形式 + var syntax = dicomFile.Dataset.InternalTransferSyntax; + + //对于封装像素的文件做转换 + if (syntax.IsEncapsulated) + { + #region 开始方式 + + // 获取 Pixel Data 标签 + var pixelData = DicomPixelData.Create(dicomFile.Dataset); + + // 创建一个新的片段序列 + var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); + + // 获取每帧数据并封装为单独的片段 + for (int n = 0; n < pixelData.NumberOfFrames; n++) + { + var frameData = pixelData.GetFrame(n); + newFragments.Fragments.Add(new MemoryByteBuffer(frameData.Data)); + } + + // 替换原有的片段序列 + dicomFile.Dataset.AddOrUpdate(newFragments); + + #endregion + + } + + await dicomFile.SaveAsync(output); + return true; + } + catch (Exception ex) + { + // 只记录,不传播 + Log.Logger.Warning($"TryWriteMergedDicomAsync failed: {ex.Message}"); + return false; + } + } + + + #region zip 流方式 直接下载 + + + public sealed class ZipItem + { + public string ZipEntryPath { get; set; } = ""; + + public string? OssPath { get; set; } + + public bool IsEncapsulated { get; set; } + + public Func? CustomWriter { get; set; } + } + + + private async Task CreateVisitZipAsync(string zipPath, List zipItems) + { + Directory.CreateDirectory(Path.GetDirectoryName(zipPath)!); + + await using var zipFileStream = new FileStream(zipPath, FileMode.Create, FileAccess.Write, FileShare.None, bufferSize: 4 * 1024 * 1024, useAsync: true); + + using var archive = new ZipArchive(zipFileStream, ZipArchiveMode.Create, leaveOpen: false); + + foreach (var item in zipItems) + { + var entry = archive.CreateEntry(item.ZipEntryPath.Replace("\\", "/"), CompressionLevel.NoCompression); + + await using var entryStream = entry.Open(); + + if (item.CustomWriter != null) + { + await item.CustomWriter(entryStream); + continue; + } + + if (string.IsNullOrWhiteSpace(item.OssPath)) + continue; + + if (item.IsEncapsulated) + { + var success = await TryWriteMergedDicomAsync(() => _oSSService.GetStreamFromOSSAsync(item.OssPath), entryStream); + + if (!success) + { + Log.Logger.Warning($"合并多帧失败:{item.ZipEntryPath} ossPath: {item.OssPath}"); + + throw new Exception($"合并多帧失败-终止当前zip包:{item.ZipEntryPath} ossPath: {item.OssPath}"); + } + + } + else + { + await using var ossStream = await _oSSService.GetStreamFromOSSAsync(item.OssPath); + + await ossStream.CopyToAsync(entryStream, 4 * 1024 * 1024); + } + + + } + } + + //查询一个访视 + // ↓ + //生成 DICOMDIR + // ↓ + //创建 ZipArchive + // ↓ + //OSS流直接写 ZipEntry + // ↓ + //完成一个访视.zip + // ↓ + //记录日志 + // ↓ + //处理下一个访视 + + [HttpPost] + [AllowAnonymous] + public async Task DownloadExcelTrialImageZIPStream(Guid trialId) + { + var trialInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo }).FirstOrDefault(); + + #region 设置目录 + + var rootFolder = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment); + Directory.CreateDirectory(rootFolder); + + // 获取无效字符(系统定义的) + string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); + + // 用正则表达式替换所有非法字符为下划线或空字符 + string pattern = $"[{Regex.Escape(invalidChars)}]"; + + var regexNo = Regex.Replace(trialInfo.ResearchProgramNo, pattern, "_"); + + // 创建一个临时文件夹来存放文件 + string trialFolderPath = Path.Combine(rootFolder, $"{regexNo}");//_{NewId.NextGuid()} + Directory.CreateDirectory(trialFolderPath); + + #endregion + + var oldVisits = MiniExcel.Query(Path.Combine(rootFolder, "Old.xlsx")).ToList(); + + var downloadVisits = MiniExcel.Query(Path.Combine(rootFolder, "download.xlsx")).ToList().Where(t => t.SubjectCode.IsNotNullOrEmpty() && t.VisitName.IsNotNullOrEmpty()).ToList(); + + downloadVisits = downloadVisits.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + var visitIndex = 0; + var skipCount = 0; + foreach (var downloadVisit in downloadVisits) + { + var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new + { + t.ResearchProgramNo, + t.TrialCode, + + VisitList = t.SubjectVisitList.Where(t => t.VisitName.Trim() == downloadVisit.VisitName.Trim() && t.Subject.Code.Trim() == downloadVisit.SubjectCode.Trim() && t.VisitNum == downloadVisit.VisitNum) + .Select(sv => new + { + SubjectVisitId = sv.Id, + TrialSiteCode = sv.TrialSite.TrialSiteCode, + SubjectCode = sv.Subject.Code, + VisitName = sv.VisitName, + VisitNum = sv.VisitNum, + StudyList = sv.StudyList.Select(u => new + { + StudyId = u.Id, + u.PatientId, + u.StudyTime, + u.StudyCode, + u.StudyInstanceUid, + u.StudyDIRPath, + + SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new + { + z.Modality, + + InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new + { + InstanceId = k.Id, + k.Path, + k.IsEncapsulated, + k.NumberOfFrames, + }).ToList() + }) + + }).ToList(), + + NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new + { + nd.Modality, + nd.StudyCode, + nd.ImageDate, + + FileList = nd.NoneDicomFileList.Where(t => t.IsReading).Select(file => new + { + file.FileName, + file.Path, + file.FileType + }).ToList() + }).ToList() + }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList() + + }).FirstOrDefault(); + + if (downloadInfo == null) + { + continue; + } + + #region 排除已经下载的 + + var logFilePath = Path.Combine(rootFolder, $"{trialId}_{regexNo}_download_log.csv"); + + if (File.Exists(logFilePath)) + { + var existVisits = MiniExcel.Query(logFilePath, configuration: new MiniExcelLibs.Csv.CsvConfiguration() + { + StreamReaderFunc = (stream) => new StreamReader(stream, Encoding.GetEncoding("gb2312")) + }).ToList(); + + if (existVisits.Any(old => old.VisitNum == downloadVisit.VisitNum && old.SubjectCode == downloadVisit.SubjectCode && old.VisitName.Trim().ToLower() == downloadVisit.VisitName.Trim().ToLower())) + { + Log.Logger.Warning($"[{visitIndex}] Excel显示已下载,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}"); + skipCount++; + continue; + } + + } + + + #endregion + + foreach (var visitItem in downloadInfo.VisitList) + { + if (visitItem.StudyList.Count() == 0 && visitItem.NoneDicomStudyList.Count() == 0) + { + Log.Logger.Warning($"[{visitIndex}]查询无检查,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}"); + skipCount++; + continue; + } + + try + { + #region 导出访视 + + var zipItems = new List(); + + var visitFolderName = $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}"; + + #region DICOM + + foreach (var studyInfo in visitItem.StudyList) + { + var dirDic = new Dictionary(); + + var studyFolderName = $"{studyInfo.StudyCode}_{studyInfo.StudyTime:yyyy-MM-dd}_{string.Join('_', studyInfo.SeriesList.Select(t => t.Modality))}"; + + #region DICOMDIR + + + if (!_instanceRepository.Where(t => t.IsReading && t.DicomSerie.IsReading) + .Where(t => visitItem.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) + { + var list = _subjectVisitRepository.Where(t => t.Id == visitItem.SubjectVisitId).SelectMany(t => t.StudyList) + .SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading && t.StudyId == studyInfo.StudyId)) + .Select(t => new StudyDIRInfo() + { + + DicomStudyId = t.DicomStudy.Id, + + PatientId = downloadInfo.TrialCode + "-" + t.DicomStudy.Subject.Code, + PatientName = t.DicomStudy.PatientName, + PatientBirthDate = t.DicomStudy.PatientBirthDate, + PatientSex = t.DicomStudy.PatientSex, + + StudyInstanceUid = t.StudyInstanceUid, + StudyId = t.DicomStudy.StudyId, + DicomStudyDate = t.DicomStudy.DicomStudyDate, + DicomStudyTime = t.DicomStudy.DicomStudyTime, + AccessionNumber = t.DicomStudy.AccessionNumber, + + StudyDescription = t.DicomStudy.Description, + + SeriesInstanceUid = t.DicomSerie.SeriesInstanceUid, + Modality = t.DicomSerie.Modality, + DicomSeriesDate = t.DicomSerie.DicomSeriesDate, + DicomSeriesTime = t.DicomSerie.DicomSeriesTime, + SeriesNumber = t.DicomSerie.SeriesNumber, + SeriesDescription = t.DicomSerie.Description, + + InstanceId = t.Id, + SopInstanceUid = t.SopInstanceUid, + SOPClassUID = t.SOPClassUID, + InstanceNumber = t.InstanceNumber, + MediaStorageSOPClassUID = t.MediaStorageSOPClassUID, + MediaStorageSOPInstanceUID = t.MediaStorageSOPInstanceUID, + TransferSytaxUID = t.TransferSytaxUID, + + }).ToList(); + + foreach (var group in list.GroupBy(t => new { t.StudyInstanceUid, t.DicomStudyId })) + { + + using var ms = new MemoryStream(); + + await DicomDIRHelper.GenerateStudyDIR(group.ToList(), dirDic, outputStream: ms); + + var dicomDirBytes = ms.ToArray(); + + zipItems.Add(new ZipItem + { + ZipEntryPath = $"{visitFolderName}/{studyFolderName}/DICOMDIR", + + CustomWriter = async entryStream => + { + await entryStream.WriteAsync(dicomDirBytes); + } + }); + } + + } + + + #endregion + + + + + foreach (var seriesInfo in studyInfo.SeriesList) + { + foreach (var instanceInfo in seriesInfo.InstancePathList) + { + zipItems.Add(new ZipItem + { + OssPath = instanceInfo.Path, + + IsEncapsulated = instanceInfo.IsEncapsulated, + + ZipEntryPath = $"{visitFolderName}/" + $"{studyFolderName}/" + $"IMAGE/" + $"{dirDic[instanceInfo.InstanceId.ToString()]}" + }); + } + } + + + + } + + #endregion + + + #region NoneDicom + + foreach (var study in visitItem.NoneDicomStudyList) + { + var studyFolderName = $"{study.StudyCode}_" + $"{study.ImageDate:yyyy-MM-dd}_" + $"{study.Modality}"; + + foreach (var file in study.FileList) + { + zipItems.Add(new ZipItem + { + OssPath = HttpUtility.UrlDecode(file.Path), + + ZipEntryPath = $"{visitFolderName}/" + $"{studyFolderName}/" + $"{Path.GetFileName(file.FileName)}" + }); + } + } + + #endregion + + + #region zip + + + var zipPath = Path.Combine(trialFolderPath, visitFolderName + ".zip"); + + Log.Logger.Warning($"[{visitIndex}] {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}开始打包下载访视:{visitFolderName}"); + + try + { + await CreateVisitZipAsync(zipPath, zipItems); + + //Log.Logger.Warning($"zip exists={File.Exists(zipPath)} size={new FileInfo(zipPath).Length}"); + + Log.Logger.Warning($"[{visitIndex}] {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}访视打包下载完成:{visitFolderName}"); + + DownloadLogger.Write(logFilePath, visitItem.SubjectCode, visitItem.VisitNum, visitItem.VisitName, "Success"); + + } + catch (Exception ex) + { + Log.Logger.Warning($"出现异常{ex}删除压缩包:{visitFolderName}"); + //如果有异常,删除失败的压缩包 + if (File.Exists(zipPath)) + { + File.Delete(zipPath); + } + + } + + + #endregion + + + + #endregion + + } + + catch (Exception ex) + { + Log.Logger.Error(ex, $"导出失败:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}"); + } + + + } + } + + return ResponseOutput.Ok(); + } + + #endregion + + + #region Excel 下载 先下载,然后再压缩,删除方式 + + public static class DownloadLogger + { + public static void Write( + string logFilePath, + string subjectCode, + decimal visitNum, + string visitName, + string? message = null) + { + bool fileExists = File.Exists(logFilePath); + + // 一次性打开文件流 + using var stream = new FileStream( + logFilePath, + FileMode.Append, + FileAccess.Write, + FileShare.ReadWrite); + + // 首次创建时写入 BOM + if (!fileExists) + { + var bom = new UTF8Encoding(true).GetPreamble(); + stream.Write(bom, 0, bom.Length); + } + + using var writer = new StreamWriter(stream, new UTF8Encoding(false)); + + // 写入表头 + if (!fileExists) + { + writer.WriteLine("Time,SubjectCode,VisitNum,VisitName,Message"); + } + + // 写入数据 + string line = string.Join(",", + [ + Escape(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")), + subjectCode, + visitNum, + visitName, + Escape(message) + ]); + + writer.WriteLine(line); + } + + private static string Escape(string? value) + { + if (string.IsNullOrEmpty(value)) + return ""; + + value = value.Replace("\"", "\"\""); + return $"\"{value}\""; + } + } + + public class DownloadJob + { + public bool IsZip { get; set; } + public string Name { get; set; } + + + public Func Action { get; set; } + } + + [HttpPost] + [AllowAnonymous] + public async Task DownloadExcelTrialImage(Guid trialId) + { + + + + var trialInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo }).FirstOrDefault(); + + #region 设置目录 + + var rootFolder = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment); + Directory.CreateDirectory(rootFolder); + + // 获取无效字符(系统定义的) + string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); + + // 用正则表达式替换所有非法字符为下划线或空字符 + string pattern = $"[{Regex.Escape(invalidChars)}]"; + + var regexNo = Regex.Replace(trialInfo.ResearchProgramNo, pattern, "_"); + + // 创建一个临时文件夹来存放文件 + string trialFolderPath = Path.Combine(rootFolder, $"{regexNo}");//_{NewId.NextGuid()} + Directory.CreateDirectory(trialFolderPath); + + #endregion + + var oldVisits = MiniExcel.Query(Path.Combine(rootFolder, "Old.xlsx")).ToList(); + + var downloadVisits = MiniExcel.Query(Path.Combine(rootFolder, "download.xlsx")).ToList().Where(t => t.SubjectCode.IsNotNullOrEmpty() && t.VisitName.IsNotNullOrEmpty()).ToList(); + + downloadVisits = downloadVisits.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && + old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + var downloadJobs = new List(); + + var skipCount = 0; + var visitIndex = 0; + foreach (var downloadVisit in downloadVisits) + { + visitIndex++; + var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new + { + t.ResearchProgramNo, + t.TrialCode, + + VisitList = t.SubjectVisitList.Where(t => t.VisitName.Trim() == downloadVisit.VisitName.Trim() && t.Subject.Code.Trim() == downloadVisit.SubjectCode.Trim() && t.VisitNum == downloadVisit.VisitNum) + .Select(sv => new + { + SubjectVisitId = sv.Id, + TrialSiteCode = sv.TrialSite.TrialSiteCode, + SubjectCode = sv.Subject.Code, + VisitName = sv.VisitName, + VisitNum = sv.VisitNum, + StudyList = sv.StudyList.Select(u => new + { + StudyId = u.Id, + u.PatientId, + u.StudyTime, + u.StudyCode, + u.StudyInstanceUid, + u.StudyDIRPath, + + SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new + { + z.Modality, + + InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new + { + InstanceId = k.Id, + k.Path, + k.IsEncapsulated, + k.NumberOfFrames, + }).ToList() + }) + + }).ToList(), + + NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new + { + nd.Modality, + nd.StudyCode, + nd.ImageDate, + + FileList = nd.NoneDicomFileList.Where(t => t.IsReading).Select(file => new + { + file.FileName, + file.Path, + file.FileType + }).ToList() + }).ToList() + }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList() + + }).FirstOrDefault(); + + if (downloadInfo == null) + { + return ResponseOutput.Ok(); + } + + #region 排除已经下载的 + + var logFilePath = Path.Combine(rootFolder, $"{trialId}_{regexNo}_download_log.csv"); + + if (File.Exists(logFilePath)) + { + var existVisits = MiniExcel.Query(logFilePath, configuration: new MiniExcelLibs.Csv.CsvConfiguration() + { + StreamReaderFunc = (stream) => new StreamReader(stream, Encoding.GetEncoding("gb2312")) + }).ToList(); + + if (existVisits.Any(old => old.VisitNum == downloadVisit.VisitNum && old.SubjectCode == downloadVisit.SubjectCode && + old.VisitName.Trim().ToLower() == downloadVisit.VisitName.Trim().ToLower())) + { + Log.Logger.Warning($"[{visitIndex}] Excel显示已下载,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}"); + skipCount++; + continue; + } + + } + + + #endregion + + + + foreach (var visitItem in downloadInfo.VisitList) + { + if (visitItem.StudyList.Count() == 0 && visitItem.NoneDicomStudyList.Count() == 0) + { + Log.Logger.Warning($"[{visitIndex}]查询无检查,跳过当前访视:{downloadVisit.SubjectCode} {downloadVisit.VisitName} {downloadVisit.VisitNum}"); + skipCount++; + continue; + } + + Log.Logger.Warning($"[{visitIndex}]开始获取访视信息准备下载任务:{visitItem.SubjectCode} {visitItem.VisitName} {visitItem.VisitNum}"); + + foreach (var studyInfo in visitItem.StudyList) + { + + var dirDic = new Dictionary(); + + #region 生成DIR + + string studyDicomFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}", $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{string.Join('_', studyInfo.SeriesList.Select(t => t.Modality))}"); + + // 创建 影像 文件夹 + Directory.CreateDirectory(studyDicomFolderPath); + + + if (!_instanceRepository.Where(t => t.IsReading && t.DicomSerie.IsReading) + .Where(t => visitItem.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) + { + var list = _subjectVisitRepository.Where(t => t.Id == visitItem.SubjectVisitId).SelectMany(t => t.StudyList) + .SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading && t.StudyId == studyInfo.StudyId)) + .Select(t => new StudyDIRInfo() + { + + DicomStudyId = t.DicomStudy.Id, + + PatientId = downloadInfo.TrialCode + "-" + t.DicomStudy.Subject.Code, + PatientName = t.DicomStudy.PatientName, + PatientBirthDate = t.DicomStudy.PatientBirthDate, + PatientSex = t.DicomStudy.PatientSex, + + StudyInstanceUid = t.StudyInstanceUid, + StudyId = t.DicomStudy.StudyId, + DicomStudyDate = t.DicomStudy.DicomStudyDate, + DicomStudyTime = t.DicomStudy.DicomStudyTime, + AccessionNumber = t.DicomStudy.AccessionNumber, + + StudyDescription = t.DicomStudy.Description, + + SeriesInstanceUid = t.DicomSerie.SeriesInstanceUid, + Modality = t.DicomSerie.Modality, + DicomSeriesDate = t.DicomSerie.DicomSeriesDate, + DicomSeriesTime = t.DicomSerie.DicomSeriesTime, + SeriesNumber = t.DicomSerie.SeriesNumber, + SeriesDescription = t.DicomSerie.Description, + + InstanceId = t.Id, + SopInstanceUid = t.SopInstanceUid, + SOPClassUID = t.SOPClassUID, + InstanceNumber = t.InstanceNumber, + MediaStorageSOPClassUID = t.MediaStorageSOPClassUID, + MediaStorageSOPInstanceUID = t.MediaStorageSOPInstanceUID, + TransferSytaxUID = t.TransferSytaxUID, + + }).ToList(); + + var pathInfo = await _subjectVisitRepository.Where(t => t.Id == visitItem.SubjectVisitId).Select(t => new { t.TrialId, t.SubjectId, VisitId = t.Id }).FirstNotNullAsync(); + + foreach (var group in list.GroupBy(t => new { t.StudyInstanceUid, t.DicomStudyId })) + { + + var first = group.First(); + + + var dirPath = Path.Combine(studyDicomFolderPath, "DICOMDIR"); + + var isSucess = await SafeBussinessHelper.RunAsync(async () => await DicomDIRHelper.GenerateStudyDIR(group.ToList(), dirDic, dirPath)); + + + + + } + } + #endregion + + // 遍历 Series + foreach (var seriesInfo in studyInfo.SeriesList) + { + + + + // 遍历 InstancePathList + foreach (var instanceInfo in seriesInfo.InstancePathList) + { + + string destinationFolder = Path.Combine(studyDicomFolderPath, "IMAGE"); + + Directory.CreateDirectory(destinationFolder); + + // 复制文件到相应的文件夹 + string destinationPath = Path.Combine(destinationFolder, dirDic[instanceInfo.InstanceId.ToString()]); + + + downloadJobs.Add(new DownloadJob() + { + Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_DICOM_{destinationPath}", + + Action = async () => + { + + await using var output = File.Create(destinationPath); + + if (instanceInfo.IsEncapsulated) + { + var isSucess = await TryWriteMergedDicomAsync( + () => _oSSService.GetStreamFromOSSAsync(instanceInfo.Path), + output); + + if (isSucess == false) + { + Log.Logger.Warning($"合并多帧失败: failed: {destinationFolder} {destinationPath}"); + } + } + else + { + await using var input = + await _oSSService.GetStreamFromOSSAsync(instanceInfo.Path); + + await input.CopyToAsync(output); + } + } + }); + + } + } + + + } + + foreach (var noneDicomStudy in visitItem.NoneDicomStudyList) + { + string studyNoneDicomFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}", $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}"); + + Directory.CreateDirectory(studyNoneDicomFolderPath); + + foreach (var file in noneDicomStudy.FileList) + { + string destinationPath = Path.Combine(studyNoneDicomFolderPath, Path.GetFileName(file.FileName)); + + //加入到下载任务里 + downloadJobs.Add(new DownloadJob() { Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_NoneDICOM_{destinationPath}", Action = () => _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath) }); + + //下载到当前目录 + //await _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath); + } + } + + + //建立压缩包 + string visitFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}"); + + var currentIndex = visitIndex; + + downloadJobs.Add(new DownloadJob() + { + Name = $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}_Zip", + + IsZip = true, + + Action = async () => + { + Log.Logger.Warning($"[{currentIndex}] {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}开启另外线程压缩访视:{visitItem.SubjectCode} {visitItem.VisitName} {visitItem.VisitNum}"); + + string zipPath = visitFolderPath + ".zip"; + + if (File.Exists(zipPath)) + { + File.Delete(zipPath); + } + + ZipFile.CreateFromDirectory( + visitFolderPath, + zipPath, + CompressionLevel.NoCompression, + false); + + Directory.Delete(visitFolderPath, true); + + await Task.CompletedTask; + } + }); + + //记录日志 + downloadJobs.Add(new DownloadJob() + { + Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_Finished", + Action = () => + { + DownloadLogger.Write( + logFilePath: logFilePath, + subjectCode: visitItem.SubjectCode, + visitNum: visitItem.VisitNum, + visitName: visitItem.VisitName.Trim(), + message: "Success"); + + return Task.CompletedTask; + } + }); + + } + + + + + + + + + } + + + + Log.Logger.Warning($"{downloadVisits.Count}个访视信息核对准备完毕, 跳过{skipCount} 个,后端开始下载任务......"); + + #region 异步方式处理 + + int totalCount = downloadJobs.Count; + int downloadedCount = 0; + + Log.Logger.Warning($"下载文件总数: {totalCount}"); + foreach (var job in downloadJobs) + { + try + { + if (job.IsZip == false) + { + await job.Action(); + + } + else + { + _ = Task.Run(async () => + { + await job.Action(); + }); + } + } + catch (Exception ex) + { + Log.Logger.Error($"{job.Name}下载失败: {ex.Message}"); + } + + downloadedCount++; + + // 每处理50个,输出一次进度(或最后一个时也输出) + if (downloadedCount % 50 == 0 || downloadedCount == totalCount) + { + + Log.Logger.Warning($"已下载 {downloadedCount} / {totalCount} 个文件,完成 {(downloadedCount * 100.0 / totalCount):F2}%"); + + } + } + #endregion + + + return ResponseOutput.Ok(); + + + + + } /// /// 后端api swagger 下载项目影像 /// /// + /// + /// /// [HttpPost] [AllowAnonymous] - public async Task DownloadTrialImage(Guid trialId) + public async Task DownloadTrialImage(Guid trialId, int startIndex, int endIndex) { + //找到项目里面未阅片的影像 + + if (startIndex < 1 || endIndex < 1 || startIndex > endIndex) + { + return ResponseOutput.NotOk("请输入正确的下载区间"); + } + + //var subjectCodeList = new List() { "05002", "07006", "07026" }; var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.ResearchProgramNo, + t.TrialCode, - VisitList = t.SubjectVisitList + VisitList = t.SubjectVisitList.Where(t => t.VisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.SourceSubjectVisitId != null && t.DoctorUserId != null)) //.Where(t=>subjectCodeList.Contains(t.Subject.Code)) .Select(sv => new { + SubjectVisitId = sv.Id, TrialSiteCode = sv.TrialSite.TrialSiteCode, SubjectCode = sv.Subject.Code, VisitName = sv.VisitName, + VisitNum = sv.VisitNum, StudyList = sv.StudyList.Select(u => new { + StudyId = u.Id, u.PatientId, u.StudyTime, u.StudyCode, + u.StudyInstanceUid, + u.StudyDIRPath, SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new { @@ -85,7 +1029,10 @@ namespace IRaCIS.Core.Application.Service InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new { - k.Path + InstanceId = k.Id, + k.Path, + k.IsEncapsulated, + k.NumberOfFrames, }).ToList() }) @@ -104,153 +1051,346 @@ namespace IRaCIS.Core.Application.Service file.FileType }).ToList() }).ToList() - }).ToList() + }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList() }).FirstOrDefault(); - - var count = downloadInfo.VisitList.SelectMany(t => t.NoneDicomStudyList).SelectMany(t => t.FileList).Count(); - var count2 = downloadInfo.VisitList.SelectMany(t => t.StudyList).SelectMany(t => t.SeriesList).SelectMany(t => t.InstancePathList).Count(); - - Console.WriteLine($"下载总数量:{count}+{count2}={count + count2}"); - - if (downloadInfo != null) + if (downloadInfo == null) { - var downloadJobs = new List>(); + return ResponseOutput.Ok(); + } - var rootFolder = @"E:\DownloadImage"; + #region 设置目录 - //var rootFolder = FileStoreHelper.GetDonwnloadImageFolder(_hostEnvironment); + var rootFolder = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment); + Directory.CreateDirectory(rootFolder); - // 获取无效字符(系统定义的) - string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); + // 获取无效字符(系统定义的) + string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars()); - // 用正则表达式替换所有非法字符为下划线或空字符 - string pattern = $"[{Regex.Escape(invalidChars)}]"; + // 用正则表达式替换所有非法字符为下划线或空字符 + string pattern = $"[{Regex.Escape(invalidChars)}]"; - var regexNo = Regex.Replace(downloadInfo.ResearchProgramNo, pattern, "_"); + var regexNo = Regex.Replace(downloadInfo.ResearchProgramNo, pattern, "_"); - // 创建一个临时文件夹来存放文件 - string trialFolderPath = Path.Combine(rootFolder, $"{regexNo}_{NewId.NextGuid()}"); - Directory.CreateDirectory(trialFolderPath); + // 创建一个临时文件夹来存放文件 + string trialFolderPath = Path.Combine(rootFolder, $"{regexNo}");//_{NewId.NextGuid()} + Directory.CreateDirectory(trialFolderPath); - foreach (var visitItem in downloadInfo.VisitList) + var oldVisits = MiniExcel.Query(Path.Combine(rootFolder, "Old.xlsx")).ToList(); + + Log.Logger.Warning($"数据库查询下载访视数量 - 前一批已下载访视数量:{downloadInfo.VisitList.Count} - {oldVisits.Count}"); + + var acturalDownList = downloadInfo.VisitList.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && + old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + #endregion + + #region 排除已经下载的 + + var logFilePath = Path.Combine(rootFolder, $"{trialId}_{regexNo}_download_log.csv"); + + if (File.Exists(logFilePath)) + { + var existVisits = MiniExcel.Query(logFilePath, configuration: new MiniExcelLibs.Csv.CsvConfiguration() { - if (visitItem.StudyList.Count() == 0 && visitItem.NoneDicomStudyList.Count() == 0) - { - continue; - } + StreamReaderFunc = (stream) => new StreamReader(stream, Encoding.GetEncoding("gb2312")) + }).ToList(); - #region 处理 中心,受试者dicom non-dicom 文件夹层级 + Log.Logger.Warning($"download_log.csv访视数量:{existVisits.Count}"); - var siteFolderPath = Path.Combine(trialFolderPath, visitItem.TrialSiteCode); - if (!Directory.Exists(siteFolderPath)) - { - Directory.CreateDirectory(siteFolderPath); - } + Log.Logger.Warning($"csv排除前需要下载数量:{acturalDownList.Count}"); - #endregion + acturalDownList = acturalDownList.Where(t => !existVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && + old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + Log.Logger.Warning($"csv排除后需要下载数量:{acturalDownList.Count}"); - foreach (var studyInfo in visitItem.StudyList) - { - // 遍历 Series - foreach (var seriesInfo in studyInfo.SeriesList) - { - string studyDicomFolderPath = Path.Combine(siteFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName}_DICOM", $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{seriesInfo.Modality}"); - - // 创建 影像 文件夹 - Directory.CreateDirectory(studyDicomFolderPath); - - // 遍历 InstancePathList - foreach (var instanceInfo in seriesInfo.InstancePathList) - { - // 复制文件到相应的文件夹 - string destinationPath = Path.Combine(studyDicomFolderPath, Path.GetFileName(instanceInfo.Path)); - - - //加入到下载任务里 - downloadJobs.Add(() => _oSSService.DownLoadFromOSSAsync(instanceInfo.Path, destinationPath)); - - //下载到当前目录 - //await _oSSService.DownLoadFromOSSAsync(instanceInfo.Path, destinationPath); - } - } - - - } - - foreach (var noneDicomStudy in visitItem.NoneDicomStudyList) - { - string studyNoneDicomFolderPath = Path.Combine(siteFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName}_Non-DICOM", $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}"); - - Directory.CreateDirectory(studyNoneDicomFolderPath); - - foreach (var file in noneDicomStudy.FileList) - { - string destinationPath = Path.Combine(studyNoneDicomFolderPath, Path.GetFileName(file.FileName)); - - //加入到下载任务里 - downloadJobs.Add(() => _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath)); - //下载到当前目录 - //await _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath); - } - } - - - } - - #region 异步方式处理 - - int totalCount = downloadJobs.Count; - int downloadedCount = 0; - - foreach (var job in downloadJobs) - { - try - { - await job(); - } - catch (Exception ex) - { - Console.WriteLine($"下载失败: {ex.Message}"); - } - - downloadedCount++; - - // 每处理50个,输出一次进度(或最后一个时也输出) - if (downloadedCount % 50 == 0 || downloadedCount == totalCount) - { - Console.WriteLine($"已下载 {downloadedCount} / {totalCount} 个文件,完成 {(downloadedCount * 100.0 / totalCount):F2}%"); - } - } - #endregion - - #region 多线程测试 - - //const int batchSize = 15; - //int totalCount = downloadJobs.Count; - //int downloadedCount = 0; - - //for (int i = 0; i < downloadJobs.Count; i += batchSize) - //{ - // var batch = downloadJobs.Skip(i).Take(batchSize).Select(job => job()); - - // await Task.WhenAll(batch); - - // downloadedCount += batch.Count(); - - // Console.WriteLine($"已下载 {downloadedCount} / {totalCount} 个文件,完成 {(downloadedCount * 100.0 / totalCount):F2}%"); - //} - #endregion } + acturalDownList = acturalDownList.Skip(startIndex - 1).Take(endIndex - startIndex + 1).ToList(); + + Log.Logger.Warning($"该区{startIndex}-{endIndex} 实际需要下载访视数量:{acturalDownList.Count}"); + + #endregion + + var count = acturalDownList.SelectMany(t => t.NoneDicomStudyList).SelectMany(t => t.FileList).Count(); + + var count2 = acturalDownList.SelectMany(t => t.StudyList).SelectMany(t => t.SeriesList).SelectMany(t => t.InstancePathList).Count(); + + Log.Logger.Warning($"下载总数量:{count}+{count2}={count + count2}"); + + var downloadJobs = new List(); + + + foreach (var visitItem in acturalDownList) + { + if (visitItem.StudyList.Count() == 0 && visitItem.NoneDicomStudyList.Count() == 0) + { + continue; + } + + + + foreach (var studyInfo in visitItem.StudyList) + { + + var dirDic = new Dictionary(); + + #region 生成DIR + + string studyDicomFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}", $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{string.Join('_', studyInfo.SeriesList.Select(t => t.Modality))}"); + + // 创建 影像 文件夹 + Directory.CreateDirectory(studyDicomFolderPath); + + + if (!_instanceRepository.Where(t => t.IsReading && t.DicomSerie.IsReading) + .Where(t => visitItem.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) + { + var list = _subjectVisitRepository.Where(t => t.Id == visitItem.SubjectVisitId).SelectMany(t => t.StudyList) + .SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading && t.StudyId == studyInfo.StudyId)) + .Select(t => new StudyDIRInfo() + { + + DicomStudyId = t.DicomStudy.Id, + + PatientId = downloadInfo.TrialCode + "-" + t.DicomStudy.Subject.Code, + PatientName = t.DicomStudy.PatientName, + PatientBirthDate = t.DicomStudy.PatientBirthDate, + PatientSex = t.DicomStudy.PatientSex, + + StudyInstanceUid = t.StudyInstanceUid, + StudyId = t.DicomStudy.StudyId, + DicomStudyDate = t.DicomStudy.DicomStudyDate, + DicomStudyTime = t.DicomStudy.DicomStudyTime, + AccessionNumber = t.DicomStudy.AccessionNumber, + + StudyDescription = t.DicomStudy.Description, + + SeriesInstanceUid = t.DicomSerie.SeriesInstanceUid, + Modality = t.DicomSerie.Modality, + DicomSeriesDate = t.DicomSerie.DicomSeriesDate, + DicomSeriesTime = t.DicomSerie.DicomSeriesTime, + SeriesNumber = t.DicomSerie.SeriesNumber, + SeriesDescription = t.DicomSerie.Description, + + InstanceId = t.Id, + SopInstanceUid = t.SopInstanceUid, + SOPClassUID = t.SOPClassUID, + InstanceNumber = t.InstanceNumber, + MediaStorageSOPClassUID = t.MediaStorageSOPClassUID, + MediaStorageSOPInstanceUID = t.MediaStorageSOPInstanceUID, + TransferSytaxUID = t.TransferSytaxUID, + + }).ToList(); + + var pathInfo = await _subjectVisitRepository.Where(t => t.Id == visitItem.SubjectVisitId).Select(t => new { t.TrialId, t.SubjectId, VisitId = t.Id }).FirstNotNullAsync(); + + foreach (var group in list.GroupBy(t => new { t.StudyInstanceUid, t.DicomStudyId })) + { + + var first = group.First(); + + + var dirPath = Path.Combine(studyDicomFolderPath, "DICOMDIR"); + + var isSucess = await SafeBussinessHelper.RunAsync(async () => await DicomDIRHelper.GenerateStudyDIR(group.ToList(), dirDic, dirPath)); + + + + + } + } + #endregion + + // 遍历 Series + foreach (var seriesInfo in studyInfo.SeriesList) + { + + + + // 遍历 InstancePathList + foreach (var instanceInfo in seriesInfo.InstancePathList) + { + + string destinationFolder = Path.Combine(studyDicomFolderPath, "IMAGE"); + + Directory.CreateDirectory(destinationFolder); + + // 复制文件到相应的文件夹 + string destinationPath = Path.Combine(destinationFolder, dirDic[instanceInfo.InstanceId.ToString()]); + + + downloadJobs.Add(new DownloadJob() + { + Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_DICOM_{destinationPath}", + + Action = async () => + { + + await using var output = File.Create(destinationPath); + + if (instanceInfo.IsEncapsulated) + { + var isSucess = await TryWriteMergedDicomAsync( + () => _oSSService.GetStreamFromOSSAsync(instanceInfo.Path), + output); + + if (isSucess == false) + { + Log.Logger.Warning($"合并多帧失败: failed: {destinationFolder} {destinationPath}"); + } + } + else + { + await using var input = + await _oSSService.GetStreamFromOSSAsync(instanceInfo.Path); + + await input.CopyToAsync(output); + } + } + }); + + } + } + + + } + + foreach (var noneDicomStudy in visitItem.NoneDicomStudyList) + { + string studyNoneDicomFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}", $"{noneDicomStudy.StudyCode}_{noneDicomStudy.ImageDate.ToString("yyyy-MM-dd")}_{noneDicomStudy.Modality}"); + + Directory.CreateDirectory(studyNoneDicomFolderPath); + + foreach (var file in noneDicomStudy.FileList) + { + string destinationPath = Path.Combine(studyNoneDicomFolderPath, Path.GetFileName(file.FileName)); + + //加入到下载任务里 + downloadJobs.Add(new DownloadJob() { Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_NoneDICOM_{destinationPath}", Action = () => _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath) }); + + //下载到当前目录 + //await _oSSService.DownLoadFromOSSAsync(HttpUtility.UrlDecode(file.Path), destinationPath); + } + } + + + //建立压缩包 + string visitFolderPath = Path.Combine(trialFolderPath, $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}"); + + downloadJobs.Add(new DownloadJob() + { + Name = $"{visitItem.SubjectCode}_{visitItem.VisitName.Trim()}_Zip", + + IsZip = true, + + Action = async () => + { + string zipPath = visitFolderPath + ".zip"; + + if (File.Exists(zipPath)) + { + File.Delete(zipPath); + } + + ZipFile.CreateFromDirectory( + visitFolderPath, + zipPath, + CompressionLevel.NoCompression, + false); + + Directory.Delete(visitFolderPath, true); + + await Task.CompletedTask; + } + }); + + //记录日志 + downloadJobs.Add(new DownloadJob() + { + Name = $"{visitItem.SubjectCode}_{visitItem.VisitNum}_{visitItem.VisitName.Trim()}_Finished", + Action = () => + { + DownloadLogger.Write( + logFilePath: logFilePath, + subjectCode: visitItem.SubjectCode, + visitNum: visitItem.VisitNum, + visitName: visitItem.VisitName.Trim(), + message: "Success"); + + return Task.CompletedTask; + } + }); + } + + #region 异步方式处理 + + int totalCount = downloadJobs.Count; + int downloadedCount = 0; + + foreach (var job in downloadJobs) + { + try + { + if (job.IsZip == false) + { + await job.Action(); + + } + else + { + _ = Task.Run(async () => + { + await job.Action(); + }); + } + } + catch (Exception ex) + { + Log.Logger.Error($"{job.Name}下载失败: {ex.Message}"); + } + + downloadedCount++; + + // 每处理50个,输出一次进度(或最后一个时也输出) + if (downloadedCount % 50 == 0 || downloadedCount == totalCount) + { + + Log.Logger.Warning($"已下载 {downloadedCount} / {totalCount} 个文件,完成 {(downloadedCount * 100.0 / totalCount):F2}%"); + + } + } + #endregion + + #region 多线程测试 + + //const int batchSize = 15; + //int totalCount = downloadJobs.Count; + //int downloadedCount = 0; + + //for (int i = 0; i < downloadJobs.Count; i += batchSize) + //{ + // var batch = downloadJobs.Skip(i).Take(batchSize).Select(job => job()); + + // await Task.WhenAll(batch); + + // downloadedCount += batch.Count(); + + // Console.WriteLine($"已下载 {downloadedCount} / {totalCount} 个文件,完成 {(downloadedCount * 100.0 / totalCount):F2}%"); + //} + #endregion + + return ResponseOutput.Ok(); } + #endregion + /// /// 下载影像 维护dir信息 并回传到OSS diff --git a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs index f1c84a99d..a1da04273 100644 --- a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs +++ b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs @@ -149,7 +149,7 @@ namespace IRaCIS.Application.Contracts public bool? AcceptingNewTrial { get; set; }//是否接受新的项目 public bool? ActivelyReading { get; set; }// 是否接受新的读片任务 - public int? Nation { get; set; }// 0-中国医生,2-美国医生,3-全部 + public DoctorNation? Nation { get; set; }// 0-中国医生,2-美国医生,3-全部 } /// diff --git a/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs b/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs index e7ce1734a..02e7e2dde 100644 --- a/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs +++ b/IRaCIS.Core.Application/Service/Document/DTO/SystemDocumentViewModel.cs @@ -50,6 +50,7 @@ namespace IRaCIS.Core.Application.Contracts public bool? OffLine { get; set; } public Guid? SystemDocumentId { get; set; } + } @@ -205,7 +206,7 @@ namespace IRaCIS.Core.Application.Contracts public DateTime? EndCreateTime { get; set; } - + public DocLanguageType? DocLanguageType { get; set; } } public class GetNextUnSignDocumentInDto @@ -362,6 +363,8 @@ namespace IRaCIS.Core.Application.Contracts public bool IsPublish { get; set; } = false; + public DocLanguageType DocLanguageType { get; set; } + } diff --git a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs index e00fec414..1952a0a69 100644 --- a/IRaCIS.Core.Application/Service/Document/EmailSendService.cs +++ b/IRaCIS.Core.Application/Service/Document/EmailSendService.cs @@ -62,42 +62,51 @@ namespace IRaCIS.Core.Application.Service }).FirstNotNullAsync(); - var isEn_us = _userInfo.IsEn_Us; + //找到当前收件人语言 + var workLanguageList = _trialUserRoleRepository.Where(t => t.TrialId == taskInfo.TrialId && t.UserRole.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator).Select(t => t.UserRole.IdentityUser.UserWorkLanguage).Distinct().ToList(); - var resultStr = isEn_us ? (result == true ? "Yes" : "No") : (result == true ? "是" : "否"); - - if (isEnrollment == true) + foreach (var workLanguage in workLanguageList) { - Func topicAndHtmlFunc = trialEmailConfig => + //设置工作语言 + var isEn_us = workLanguage == UserWorkLanguage.US; + + var resultStr = isEn_us ? (result == true ? "Yes" : "No") : (result == true ? "是" : "否"); + + + + if (isEnrollment == true) { - var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode); + Func topicAndHtmlFunc = trialEmailConfig => + { + var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, - EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr); + var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, + EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, resultStr); - return (topicStr, htmlBodyStr, isEn_us, null); - }; + return (topicStr, htmlBodyStr, isEn_us, null); + }; - await SendTrialEmailAsync(taskInfo.TrialId, taskInfo.CriterionType, businessScenarioEnum, topicAndHtmlFunc, taskInfo.TrialSiteId); - } - else - { - Func topicAndHtmlFunc = trialEmailConfig => + await SendTrialEmailAsync(taskInfo.TrialId, taskInfo.CriterionType, businessScenarioEnum, topicAndHtmlFunc, taskInfo.TrialSiteId); + } + else { - var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName); + Func topicAndHtmlFunc = trialEmailConfig => + { + var topicStr = string.Format(isEn_us ? trialEmailConfig.EmailTopic : trialEmailConfig.EmailTopicCN, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName); - var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, - EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName, resultStr); + var htmlBodyStr = string.Format(isEn_us ? trialEmailConfig.EmailHtmlContent : trialEmailConfig.EmailHtmlContentCN, + EmailNamePlaceholder, taskInfo.ResearchProgramNo, taskInfo.SubjectCode, taskInfo.VisitName, resultStr); - return (topicStr, htmlBodyStr, isEn_us, null); - }; + return (topicStr, htmlBodyStr, isEn_us, null); + }; + + await SendTrialEmailAsync(taskInfo.TrialId, taskInfo.CriterionType, businessScenarioEnum, topicAndHtmlFunc, taskInfo.TrialSiteId); + } - await SendTrialEmailAsync(taskInfo.TrialId, taskInfo.CriterionType, businessScenarioEnum, topicAndHtmlFunc, taskInfo.TrialSiteId); } - } @@ -133,8 +142,12 @@ namespace IRaCIS.Core.Application.Service var (topicStr, htmlBodyStr, isEn_us, onlyToUserId) = topicAndHtmlFunc(trialEmailConfig); + //设置工作语言 + var workLanguage = isEn_us ? UserWorkLanguage.US : UserWorkLanguage.CN; + + //处理替换公司名 - htmlBodyStr = CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlBodyStr); + htmlBodyStr = CommonEmailHelper.ReplaceCompanyName(_systemEmailConfig, htmlBodyStr, workLanguage); sendEmailConfig.TopicDescription = topicStr; @@ -150,10 +163,10 @@ namespace IRaCIS.Core.Application.Service var allUserTypeEnumList = toUserTypeEnumList.Union(copyUserTypeEnumList).Distinct().ToList(); - var allUserList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.UserRole.UserTypeEnum)).Select(t => new { t.UserId, t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum }).ToListAsync(); + var allUserList = await _trialUserRoleRepository.Where(t => t.TrialId == trialId && allUserTypeEnumList.Contains(t.UserRole.UserTypeEnum)).Select(t => new { t.UserId, t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToListAsync(); - - var toUserList = allUserList.Where(t => toUserTypeEnumList.Contains(t.UserTypeEnum)) + //过滤当前语言 + var toUserList = allUserList.Where(t => toUserTypeEnumList.Contains(t.UserTypeEnum)).Where(t=>t.UserWorkLanguage==workLanguage) .ToList(); //收件人 有CRC CRA , CRC CRA的账户要按照中心发送 @@ -191,11 +204,6 @@ namespace IRaCIS.Core.Application.Service sendEmailConfig.HtmlBodyStr = htmlBodyStr.Replace(EmailNamePlaceholder, string.Join(isEn_us ? ", " : "、", toUserList.Select(t => t.FullName).ToList())); } - if (toUserList.Count == 0) - { - //---没有收件人,无法发送邮件 - throw new BusinessValidationFailedException(_localizer["TrialEmailN_NoRecipient"]); - } if (trialEmailConfig.FromEmail.Contains("@") && !string.IsNullOrEmpty(trialEmailConfig.FromEmail)) @@ -235,20 +243,7 @@ namespace IRaCIS.Core.Application.Service } } - //邮件附件 这里是原格式发送,不是PDF - //if (trialEmailConfig.AttachCNPath != string.Empty && trialEmailConfig.AttachPath != string.Empty) - //{ - // var phyPath = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, isEn_us? trialEmailConfig.AttachName: trialEmailConfig.AttachNameCN); - - // //先预先生成了邮件,发送预先生成的邮件 - // sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig() - // { - // FileName = $"{attachPrefix}_{Path.GetFileName(_userInfo.IsEn_Us ? trialEmailConfig.AttachName : trialEmailConfig.AttachNameCN)}", - - // FileStream = File.OpenRead(phyPath), - // }); - //} return (trialEmailConfig, sendEmailConfig); diff --git a/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs b/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs index e279c8f91..4e70aa087 100644 --- a/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/SystemDocumentService.cs @@ -42,6 +42,7 @@ namespace IRaCIS.Core.Application.Services .WhereIf(inQuery.OffLine != null, t => t.OffLine == inQuery.OffLine) .WhereIf(inQuery.FileName != null, t => t.FileName == inQuery.FileName) .WhereIf(inQuery.FileFormat != null, t => t.FileFormat == inQuery.FileFormat) + .ProjectTo(_mapper.ConfigurationProvider); var pageList = await systemDocumentAttachmentQueryable.ToPagedListAsync(inQuery); @@ -95,6 +96,7 @@ namespace IRaCIS.Core.Application.Services .WhereIf(inQuery.EndCreateTime != null, t => t.CreateTime <= inQuery.EndCreateTime) .WhereIf(inQuery.UserTypeId != null, t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == inQuery.UserTypeId)) .WhereIf(inQuery.IsDeleted != null, t => t.IsDeleted == inQuery.IsDeleted) + .WhereIf(inQuery.DocLanguageType != null, t => t.DocLanguageType == inQuery.DocLanguageType) .ProjectTo(_mapper.ConfigurationProvider, new { isEn_Us = _userInfo.IsEn_Us, userId = _userInfo.UserRoleId }); return await systemDocumentQueryable.ToPagedListAsync(inQuery); @@ -171,23 +173,16 @@ namespace IRaCIS.Core.Application.Services if (newUserTypeIds.Any()&& newUserTypeIds.Count()>0) { // 发送邮件给新增的角色 - Console.WriteLine("开始 发送系统文档更新邮件给新增角色"); - Console.WriteLine(string.Join(",", newUserTypeIds)); + Log.Logger.Warning("开始 发送系统文档更新邮件给新增角色"); + Log.Logger.Warning(string.Join(",", newUserTypeIds)); - Task.Run(async () => + // 只发送给新增的角色 + await _mediatorScoped.Publish(new SystemDocumentPublishEvent { - // 创建独立作用域 - using (var scope = serviceScopeFactory.CreateScope()) - { - // 从新作用域解析服务 - var mediator = scope.ServiceProvider.GetRequiredService(); - // 只发送给新增的角色 - await mediator.Publish(new SystemDocumentPublishEvent { - Ids = new List { document.Id }, - NewUserTypeIds = newUserTypeIds - }); - } + Ids = new List { document.Id }, + NewUserTypeIds = newUserTypeIds }); + } } @@ -212,18 +207,10 @@ namespace IRaCIS.Core.Application.Services IsDeleted = false, }); - Console.WriteLine("开始 发布系统文档"); + Log.Logger.Warning("开始 发布系统文档"); + + await _mediatorScoped.Publish(new SystemDocumentPublishEvent { Ids = inDto.Ids }); - Task.Run(async () => - { - // 创建独立作用域 - using (var scope = serviceScopeFactory.CreateScope()) - { - // 从新作用域解析服务 - var mediator = scope.ServiceProvider.GetRequiredService(); - await mediator.Publish(new SystemDocumentPublishEvent { Ids = inDto.Ids }); - } - }); return ResponseOutput.Result(true); @@ -286,9 +273,12 @@ namespace IRaCIS.Core.Application.Services { var isInternal = _userInfo.IsZhiZhun; + var workLanguage = _userInfo.UserWorkLanguage; var query = from sysDoc in _systemDocumentRepository.Where(t=>t.IsPublish) - .Where(t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId)) + .WhereIf(workLanguage == UserWorkLanguage.CN, t => t.DocLanguageType == DocLanguageType.CN || t.DocLanguageType == DocLanguageType.CN_US) + .WhereIf(workLanguage == UserWorkLanguage.US, t => t.DocLanguageType == DocLanguageType.US || t.DocLanguageType == DocLanguageType.CN_US) + .Where(t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId)) .WhereIf(!string.IsNullOrEmpty(inQuery.Name), t => t.Name.Contains(inQuery.Name)) //外部人员 只签署 外部需要签署的 .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) diff --git a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs index c9be7122a..680450732 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialDocumentService.cs @@ -19,6 +19,7 @@ namespace IRaCIS.Core.Application.Services [ApiExplorerSettings(GroupName = "Trial")] public class TrialDocumentService(IRepository _trialDocumentRepository, IRepository _trialRepository, + IScopedMediator _mediatorScoped, IRepository _auditRecordRepository, IRepository _trialDocumentAttachmentRepository, ISystemDocumentService _systemDocumentService, @@ -97,18 +98,11 @@ namespace IRaCIS.Core.Application.Services IsDeleted = false, }, false, true); await _trialDocumentRepository.SaveChangesAsync(); - Console.WriteLine("开始 发布项目文档"); + Serilog.Log.Logger.Warning("开始 发布项目文档"); - Task.Run(async () => - { - // 创建独立作用域 - using (var scope = serviceScopeFactory.CreateScope()) - { - // 从新作用域解析服务 - var mediator = scope.ServiceProvider.GetRequiredService(); - await mediator.Publish(new TrialDocumentPublishEvent { Ids = inDto.Ids }); - } - }); + await _mediatorScoped.Publish(new TrialDocumentPublishEvent { Ids = inDto.Ids }); + + return ResponseOutput.Result(true); @@ -120,32 +114,20 @@ namespace IRaCIS.Core.Application.Services /// public async Task TestPush() { - Task.Run(async () => - { - // 创建独立作用域 - using (var scope = serviceScopeFactory.CreateScope()) - { - // 从新作用域解析服务 - var mediator = scope.ServiceProvider.GetRequiredService(); - await mediator.Publish(new TrialDocumentErverDayEvent { }); - } - }); + + + await _mediatorScoped.Publish(new TrialDocumentErverDayEvent { }); + return ResponseOutput.Result(true); } public async Task TestSendEmail() { - Task.Run(async () => - { - // 创建独立作用域 - using (var scope = serviceScopeFactory.CreateScope()) - { - // 从新作用域解析服务 - var mediator = scope.ServiceProvider.GetRequiredService(); - await mediator.Publish(new ImageQCRecurringEvent { TrialId = Guid.Parse("08de2254-5d7d-581a-0242-0a0001000000") }); - } - }); + + await _mediatorScoped.Publish(new ImageQCRecurringEvent { TrialId = Guid.Parse("08de2254-5d7d-581a-0242-0a0001000000") }); + + return ResponseOutput.Result(true); } @@ -343,12 +325,16 @@ namespace IRaCIS.Core.Application.Services var isInternal = _userInfo.IsZhiZhun; + var workLanguage = _userInfo.UserWorkLanguage; + #region 统一用户修改 var systemDocQuery = from sysDoc in _systemDocumentRepository.Where(t => t.IsPublish).Where(t => t.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == _userInfo.UserTypeId)) //外部人员 只签署 外部需要签署的 .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) + .WhereIf(workLanguage == UserWorkLanguage.CN, t => t.DocLanguageType == DocLanguageType.CN || t.DocLanguageType == DocLanguageType.CN_US) + .WhereIf(workLanguage == UserWorkLanguage.US, t => t.DocLanguageType == DocLanguageType.US || t.DocLanguageType == DocLanguageType.CN_US) from trialUser in _trialIdentityUserRepository.AsQueryable(false) .Where(t => t.TrialId == inQuery.TrialId && t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => sysDoc.NeedConfirmedUserTypeList.Any(c => c.NeedConfirmUserTypeId == t.UserRole.UserTypeId))) @@ -576,6 +562,7 @@ namespace IRaCIS.Core.Application.Services var needSignTrialDocCount = await _trialDocumentRepository.AsQueryable(true).Where(t => t.IsPublish) + .Where(t => t.TrialId == inQuery.TrialId && t.Trial.TrialStatusStr != StaticData.TrialState.TrialStopped) .Where(t => t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId))) .Where(t => t.IsDeleted == false && !t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null) && t.NeedConfirmedUserTypeList.Any(u => u.NeedConfirmUserTypeId == _userInfo.UserTypeId)) @@ -583,7 +570,9 @@ namespace IRaCIS.Core.Application.Services var needSignSystemDocCount = await _systemDocumentRepository.AsQueryable(true).Where(t => t.IsPublish) - .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) + .WhereIf(workLanguage == UserWorkLanguage.CN, t => t.DocLanguageType == DocLanguageType.CN || t.DocLanguageType == DocLanguageType.CN_US) + .WhereIf(workLanguage == UserWorkLanguage.US, t => t.DocLanguageType == DocLanguageType.US || t.DocLanguageType == DocLanguageType.CN_US) + .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) .Where(t => t.IsDeleted == false && !t.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null) && t.NeedConfirmedUserTypeList.Any(u => u.NeedConfirmUserTypeId == _userInfo.UserTypeId)) .CountAsync(); @@ -961,7 +950,7 @@ namespace IRaCIS.Core.Application.Services IsSystemDoc = true, SysDocUserSignType = sysDoc.DocUserSignType, IsConfirmIdentityUserInner = identityUser.IsZhiZhun, - IsPublish=sysDoc.IsPublish, + IsPublish = sysDoc.IsPublish, Id = sysDoc.Id, CreateTime = sysDoc.CreateTime, IsDeleted = sysDoc.IsDeleted, @@ -1107,7 +1096,7 @@ namespace IRaCIS.Core.Application.Services return ResponseOutput.NotOk(_localizer["TrialD_DuplicateFileInProject"]); } - var document = (await _trialDocumentRepository.Where(t => t.Id == addOrEditTrialDocument.Id, true,true).Include(t => t.NeedConfirmedUserTypeList).FirstOrDefaultAsync()).IfNullThrowException(); + var document = (await _trialDocumentRepository.Where(t => t.Id == addOrEditTrialDocument.Id, true, true).Include(t => t.NeedConfirmedUserTypeList).FirstOrDefaultAsync()).IfNullThrowException(); bool beforeIsPublish = document.IsPublish; bool beforeIsDeleted = document.IsDeleted; @@ -1155,21 +1144,13 @@ namespace IRaCIS.Core.Application.Services Console.WriteLine("开始 发送项目文档更新邮件给新增角色"); Console.WriteLine(string.Join(",", newUserTypeIds)); - Task.Run(async () => + await _mediatorScoped.Publish(new TrialDocumentPublishEvent { - // 创建独立作用域 - using (var scope = serviceScopeFactory.CreateScope()) - { - // 从新作用域解析服务 - var mediator = scope.ServiceProvider.GetRequiredService(); - // 只发送给新增的角色 - await mediator.Publish(new TrialDocumentPublishEvent - { - Ids = new List { document.Id }, - NewUserTypeIds = newUserTypeIds - }); - } + Ids = new List { document.Id }, + NewUserTypeIds = newUserTypeIds }); + + } } return ResponseOutput.Ok(document.Id.ToString()); diff --git a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs index 800feaec9..fd5e34832 100644 --- a/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs +++ b/IRaCIS.Core.Application/Service/Document/TrialEmailNoticeConfigService.cs @@ -24,6 +24,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Spire.Doc; using System.Linq.Dynamic.Core; +using System.Runtime; using System.Runtime.InteropServices; namespace IRaCIS.Core.Application.Service @@ -137,7 +138,7 @@ namespace IRaCIS.Core.Application.Service var isNeedSend = true; //手动发送的时候,也有可能答案是是 此时是 这里不发送,发送已经生成的文件 - if (answer == "是" && isHandSend == null) + if ((answer == "是" || answer == "Yes") && isHandSend == null) { isNeedSend = true; @@ -194,7 +195,15 @@ namespace IRaCIS.Core.Application.Service /// public async Task BaseBusinessScenarioSendEmailAsync(Guid visitTaskId, bool? isHandSend, EmailStoreSendMode emailStoreMode, string sendFileRelativePath) { - var isEn_us = _userInfo.IsEn_Us; + + //简单处理,找到该中心的语言 设置工作语言 + + var country = _visitTaskRepository.Where(t => t.Id == visitTaskId).Select(t => t.Subject.TrialSite.Country).First(); + + var isEn_us = country == StaticData.SiteCountry.US; + + var workLanguage = isEn_us ? UserWorkLanguage.US : UserWorkLanguage.CN; + EmailBusinessScenario businessScenarioEnum = EmailBusinessScenario.None; var enrollReplace = ""; @@ -330,7 +339,7 @@ namespace IRaCIS.Core.Application.Service { var findItem = (await _dictionaryService.GetBasicDataSelect("Trial_Enroll_Report")).Where(t => t.Code == ((int)taskInfo.CriterionType).ToString()).FirstOrDefault(); - enrollReplace = _userInfo.IsEn_Us ? findItem.Value : findItem.ValueCN; + enrollReplace = isEn_us ? findItem.Value : findItem.ValueCN; //如果其他阅片人已经做了,说明发送了入组确认报告,第二个人做完就不发送了 @@ -348,7 +357,7 @@ namespace IRaCIS.Core.Application.Service { bool isEnroll = false; - (answer, isEnroll) = await DealEnrollAnswer(visitTaskId, (Guid)taskInfo.SourceSubjectVisitId, taskInfo.CriterionType, taskInfo.TrialReadingCriterionId); + (answer, isEnroll) = await DealEnrollAnswer(visitTaskId, (Guid)taskInfo.SourceSubjectVisitId, taskInfo.CriterionType, taskInfo.TrialReadingCriterionId, workLanguage); isNeedSend = await DealMedicalReviewTasKGenerateAndIsSendAsync(taskInfo.TrialId, isHandSend, answer, new List() { visitTaskId }, minUserIdList); } @@ -357,7 +366,7 @@ namespace IRaCIS.Core.Application.Service { var findItem = (await _dictionaryService.GetBasicDataSelect("Trial_PD_Report")).Where(t => t.Code == ((int)taskInfo.CriterionType).ToString()).FirstOrDefault(); - PdReplace = _userInfo.IsEn_Us ? findItem.Value : findItem.ValueCN; + PdReplace = isEn_us ? findItem.Value : findItem.ValueCN; //有序 @@ -384,7 +393,7 @@ namespace IRaCIS.Core.Application.Service if (taskList.Count == 2 && taskList.Count(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.ReadingCategory == ReadingCategory.Visit) == 2) { - answer = await TranslatePdStateAsync(visitTaskId, taskInfo.ReadingCategory, taskInfo.CriterionType); + answer = await TranslatePdStateAsync(visitTaskId, taskInfo.ReadingCategory, taskInfo.CriterionType, workLanguage); isNeedSend = await DealMedicalReviewTasKGenerateAndIsSendAsync(taskInfo.TrialId, isHandSend, answer, taskList.Select(t => t.Id).ToList(), minUserIdList); @@ -394,7 +403,7 @@ namespace IRaCIS.Core.Application.Service else if (taskList.Count == 3 && taskList.Count(t => t.ReadingTaskState == ReadingTaskState.HaveSigned) == 3 && taskList.Where(t => t.ReadingCategory == ReadingCategory.Judge).Count() == 1) { var judgeResultId = taskList.Where(t => t.ReadingCategory == ReadingCategory.Judge).First()!.JudgeResultTaskId!.Value; - answer = await TranslatePdStateAsync(judgeResultId, ReadingCategory.Visit, taskInfo.CriterionType); + answer = await TranslatePdStateAsync(judgeResultId, ReadingCategory.Visit, taskInfo.CriterionType, workLanguage); isNeedSend = await DealMedicalReviewTasKGenerateAndIsSendAsync(taskInfo.TrialId, isHandSend, answer, taskList.Where(t => t.ReadingCategory == ReadingCategory.Judge).Select(t => t.Id).ToList(), minUserIdList); @@ -431,7 +440,7 @@ namespace IRaCIS.Core.Application.Service if (taskList.Count == 2 && taskList.Count(t => t.ReadingTaskState == ReadingTaskState.HaveSigned && t.ReadingCategory == ReadingCategory.Global) == 2) { - answer = await TranslatePdStateAsync(visitTaskId, taskInfo.ReadingCategory, taskInfo.CriterionType); + answer = await TranslatePdStateAsync(visitTaskId, taskInfo.ReadingCategory, taskInfo.CriterionType, workLanguage); isNeedSend = await DealMedicalReviewTasKGenerateAndIsSendAsync(taskInfo.TrialId, isHandSend, answer, taskList.Select(t => t.Id).ToList(), minUserIdList); } @@ -440,7 +449,7 @@ namespace IRaCIS.Core.Application.Service { var judgeResultId = taskList.Where(t => t.ReadingCategory == ReadingCategory.Judge).First().JudgeResultTaskId!.Value; - answer = await TranslatePdStateAsync(judgeResultId, ReadingCategory.Global, taskInfo.CriterionType); + answer = await TranslatePdStateAsync(judgeResultId, ReadingCategory.Global, taskInfo.CriterionType, workLanguage); isNeedSend = await DealMedicalReviewTasKGenerateAndIsSendAsync(taskInfo.TrialId, isHandSend, answer, taskList.Where(t => t.ReadingCategory == ReadingCategory.Judge).Select(t => t.Id).ToList(), minUserIdList); @@ -613,7 +622,7 @@ namespace IRaCIS.Core.Application.Service //先预先生成了邮件,发送预先生成的邮件 sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig() { - FileName = $"{attachPrefix}_{Path.GetFileNameWithoutExtension(_userInfo.IsEn_Us ? trialEmailConfig.AttachName : trialEmailConfig!.AttachNameCN)}.pdf", + FileName = $"{attachPrefix}_{Path.GetFileNameWithoutExtension(isEn_us ? trialEmailConfig.AttachName : trialEmailConfig!.AttachNameCN)}.pdf", FileStream = File.OpenRead(phyPath), }); @@ -639,7 +648,7 @@ namespace IRaCIS.Core.Application.Service }; - var path = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, _userInfo.IsEn_Us ? trialEmailConfig.AttachPath : trialEmailConfig.AttachCNPath); + var path = FileStoreHelper.GetPhysicalFilePath(_hostEnvironment, isEn_us ? trialEmailConfig.AttachPath : trialEmailConfig.AttachCNPath); //获取从word 到 PDF的路径 var (serverFilePath, relativePath, fileRealName) = FileStoreHelper.GetSubjectEnrollConfirmOrPDEmailPath(_hostEnvironment, Path.GetFileName(path), taskInfo.TrialId, taskInfo.TrialSiteId, taskInfo.SubjectId, true); @@ -729,7 +738,7 @@ namespace IRaCIS.Core.Application.Service pdfMemoryStream.Seek(0, SeekOrigin.Begin); sendEmailConfig.EmailAttachMentConfigList.Add(new EmailAttachMentConfig() { - FileName = $"{taskInfo.SubjectCode}_{Path.GetFileNameWithoutExtension(_userInfo.IsEn_Us ? trialEmailConfig.AttachName : trialEmailConfig.AttachNameCN)}.pdf", + FileName = $"{taskInfo.SubjectCode}_{Path.GetFileNameWithoutExtension(isEn_us ? trialEmailConfig.AttachName : trialEmailConfig.AttachNameCN)}.pdf", FileStream = pdfMemoryStream }); @@ -1067,11 +1076,14 @@ namespace IRaCIS.Core.Application.Service /// /// /// + /// /// - private async Task<(string enrollAnswer, bool isEnroll)> DealEnrollAnswer(Guid visitTaskId, Guid subjectVisitId, CriterionType criterionType, Guid trialReadingCriterionId) + private async Task<(string enrollAnswer, bool isEnroll)> DealEnrollAnswer(Guid visitTaskId, Guid subjectVisitId, CriterionType criterionType, Guid trialReadingCriterionId, UserWorkLanguage userWorkLanguage) { - var enrollAnswer = _userInfo.IsEn_Us ? "No" : "否"; + var isEn_us = userWorkLanguage == UserWorkLanguage.US; + + var enrollAnswer = isEn_us ? "No" : "否"; var isEnroll = false; switch (criterionType) @@ -1088,7 +1100,7 @@ namespace IRaCIS.Core.Application.Service if (await _readingTableQuestionAnswerRepository.Where().AnyAsync(x => x.VisitTaskId == visitTaskId && x.Answer == TargetState.Exist.GetEnumInt() && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.State && x.ReadingQuestionTrial.LesionType == LesionType.TargetLesion)) { - enrollAnswer = _userInfo.IsEn_Us ? "Yes" : "是"; + enrollAnswer = isEn_us ? "Yes" : "是"; isEnroll = true; } @@ -1102,7 +1114,7 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi bool exists = list.Any(s => int.TryParse(s, out var n) && n >= 1); if (exists) { - enrollAnswer = _userInfo.IsEn_Us ? "Yes" : "是"; + enrollAnswer = isEn_us ? "Yes" : "是"; isEnroll = true; } @@ -1168,9 +1180,10 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi /// 任务类型 /// 标准类型 /// 是否是全局产生(区分裁判任务) + /// /// /// - private async Task TranslatePdStateAsync(Guid visitTaskId, ReadingCategory readingCategory, CriterionType criterionType, bool? IsGlobalGenerate = null) + private async Task TranslatePdStateAsync(Guid visitTaskId, ReadingCategory readingCategory, CriterionType criterionType, UserWorkLanguage userWorkLanguage, bool? IsGlobalGenerate = null) { var answer = string.Empty; @@ -1361,6 +1374,7 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi throw new BusinessValidationFailedException(_localizer["TrialEmailN_InvalidTaskTypeForEmailSending"]); } + var isEn_us = userWorkLanguage == UserWorkLanguage.US; switch (criterionType) { @@ -1372,11 +1386,11 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi if (answer == OverallAssessment.PD.GetEnumInt()) { - answer = _userInfo.IsEn_Us ? "Yes" : "是"; + answer = isEn_us ? "Yes" : "是"; } else { - answer = _userInfo.IsEn_Us ? "No" : "否"; + answer = isEn_us ? "No" : "否"; } break; @@ -1384,11 +1398,11 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi if (answer == OverallAssessment.iCPD.GetEnumInt()) { - answer = _userInfo.IsEn_Us ? "Yes" : "是"; + answer = isEn_us ? "Yes" : "是"; } else { - answer = _userInfo.IsEn_Us ? "No" : "否"; + answer = isEn_us ? "No" : "否"; } break; @@ -1396,11 +1410,11 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi if (answer == CTMRIOverallAssessment.PD.GetEnumInt()) { - answer = _userInfo.IsEn_Us ? "Yes" : "是"; + answer = isEn_us ? "Yes" : "是"; } else { - answer = _userInfo.IsEn_Us ? "No" : "否"; + answer = isEn_us ? "No" : "否"; } break; @@ -1408,11 +1422,11 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi if (answer == ImagingOverallAssessment_Lugano.PMDPD.GetEnumInt()) { - answer = _userInfo.IsEn_Us ? "Yes" : "是"; + answer = isEn_us ? "Yes" : "是"; } else { - answer = _userInfo.IsEn_Us ? "No" : "否"; + answer = isEn_us ? "No" : "否"; } break; @@ -1423,11 +1437,11 @@ x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.LesionNumber && x.Readi if (answer == VisitTumorEvaluation.PD.GetEnumInt()) { - answer = _userInfo.IsEn_Us ? "Yes" : "是"; + answer = isEn_us ? "Yes" : "是"; } else { - answer = _userInfo.IsEn_Us ? "No" : "否"; + answer = isEn_us ? "No" : "否"; } break; diff --git a/IRaCIS.Core.Application/Service/Financial/DTO/PaymentDetailModel.cs b/IRaCIS.Core.Application/Service/Financial/DTO/PaymentDetailModel.cs index ce7d66944..cd53c580f 100644 --- a/IRaCIS.Core.Application/Service/Financial/DTO/PaymentDetailModel.cs +++ b/IRaCIS.Core.Application/Service/Financial/DTO/PaymentDetailModel.cs @@ -105,7 +105,7 @@ public string Reviewer { get; set; } = String.Empty; public DateTime BeginMonth { get; set; } public DateTime EndMonth { get; set; } - public int? Nation { get; set; } + public DoctorNation? Nation { get; set; } } public class MonthlyPaymentDTO { diff --git a/IRaCIS.Core.Application/Service/Financial/DTO/PaymentModel.cs b/IRaCIS.Core.Application/Service/Financial/DTO/PaymentModel.cs index 15c25799e..ce4d7aa5f 100644 --- a/IRaCIS.Core.Application/Service/Financial/DTO/PaymentModel.cs +++ b/IRaCIS.Core.Application/Service/Financial/DTO/PaymentModel.cs @@ -59,7 +59,7 @@ { public DateTime StatisticsDate { get; set; } public string KeyWord { get; set; } = String.Empty; - public int? Nation { get; set; } + public DoctorNation? Nation { get; set; } } public class MonthlyPaymentDetailQuery @@ -162,7 +162,7 @@ public DateTime BeginDate { get; set; } public DateTime EndDate { get; set; } - public int? Nation { get; set; } + public DoctorNation? Nation { get; set; } } public class TrialAnalysisQueryDTO diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs index 67d8b34cb..73ccfb6cc 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/DicomSeriesModel.cs @@ -104,6 +104,8 @@ namespace IRaCIS.Core.Application.Contracts.Dicom.DTO public bool? IsMasked { get; set; } + public string? PhotometricInterpretation { get; set; } + [JsonIgnore] public int ShowOrder { get; set; } [JsonIgnore] diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs index 4c4c361be..26fbd7752 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs @@ -741,6 +741,7 @@ namespace IRaCIS.Core.Application.Contracts public class DownloadDicomInstanceDto { + public int NumberOfFrames { get; set; } public bool IsEncapsulated { get; set; } public Guid InstanceId { get; set; } public string FileName { get; set; } @@ -775,6 +776,9 @@ namespace IRaCIS.Core.Application.Contracts public List DicomStudyIdList { get; set; } public List NoneDicomStudyIdList { get; set; } + + // true 导出阅片,null 就是所有影像 + public bool? IsExportReading { get; set; } } public class IRReadingDownloadQuery : SortInput @@ -1171,4 +1175,6 @@ namespace IRaCIS.Core.Application.Contracts public string Path { get; set; } } + + } diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index fc36492e2..5ac31c75b 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -1128,6 +1128,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var isQueryDicom = inQuery.DicomStudyIdList.Count > 0; var isQueryNoneDicom = inQuery.NoneDicomStudyIdList.Count > 0; + var isExportReading = inQuery.IsExportReading == true; + var imageType = (isQueryDicom && isQueryNoneDicom) ? ImageType.DicomAndNoneDicom : (isQueryDicom ? ImageType.Dicom : ImageType.NoneDicom); var dirDic = new Dictionary(); @@ -1137,11 +1139,12 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc //有传输语法值的导出 才生成DIR //if (_subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList)).All(c => c.TransferSytaxUID != string.Empty)) - if (!_instanceRepository.Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) + if (!_instanceRepository.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true) + .Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) { var list = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) - .SelectMany(t => t.InstanceList) + .SelectMany(t => t.InstanceList.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true)) .Select(t => new StudyDIRInfo() { @@ -1222,11 +1225,11 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc StudyInstanceUid = u.StudyInstanceUid, StudyDIRPath = u.StudyDIRPath, - SeriesList = u.SeriesList.Select(z => new DownloadDicomSeriesDto() + SeriesList = u.SeriesList.Where(t => isExportReading ? t.IsReading : true).Select(z => new DownloadDicomSeriesDto() { Modality = z.Modality, - InstanceList = z.DicomInstanceList.Select(k => new DownloadDicomInstanceDto() + InstanceList = z.DicomInstanceList.Where(t => isExportReading ? t.IsReading : true).Select(k => new DownloadDicomInstanceDto() { IsEncapsulated = k.IsEncapsulated, InstanceId = k.Id, @@ -1238,7 +1241,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc }).ToList(), - NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) + NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => isExportReading ? t.IsReading : true).Where(t => isQueryNoneDicom ? inQuery.NoneDicomStudyIdList.Contains(t.Id) : false) .Select(nd => new DownloadNoneDicomStudyDto() { @@ -1246,7 +1249,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc StudyCode = nd.StudyCode, ImageDate = nd.ImageDate, - FileList = nd.NoneDicomFileList.Select(file => new DownloadNoneDicomFileDto() + FileList = nd.NoneDicomFileList.Where(t => isExportReading ? t.IsReading : true).Select(file => new DownloadNoneDicomFileDto() { FileName = file.FileName, Path = file.Path, @@ -1647,7 +1650,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc #endregion var query = from sv in _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id) && t.CheckState == CheckStateEnum.CVPassed)) - //一致性分析,导致查询出来两条数据 + //一致性分析,导致查询出来两条数据 join visitTask in _visitTaskRepository.Where(t => taskIdList.Contains(t.Id)) on sv.Id equals visitTask.SourceSubjectVisitId into cc from leftVisitTask in cc.DefaultIfEmpty() select new ImageDownloadDto() @@ -1992,6 +1995,21 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc } + + /// + /// 获取未阅片完成的访视,方便前端调用下载 + /// + /// + /// + public async Task> GetTrialUnreadVisitList(Guid trialId) + { + + var subjectVisitList = await _visitTaskRepository.Where(t => t.TrialId == trialId && t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.SourceSubjectVisitId!=null).Select(t => t.SourceSubjectVisitId) + .Distinct().ToListAsync(); + + return subjectVisitList; + } + /// /// 批量勾选访视 进行下载 /// @@ -2572,7 +2590,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc } - + /// /// 后台任务调用,前端忽略该接口 /// diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs index 50245a431..a467e87c9 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs @@ -157,13 +157,14 @@ namespace IRaCIS.Core.Application.Contracts } //默认会是0 - var code = await _noneDicomStudyRepository.Where(t => t.TrialId == addOrEditNoneDicomStudy.TrialId).Select(x => x.Code).DefaultIfEmpty().MaxAsync(); + var code = await _trialRepository.Where(t => t.Id == addOrEditNoneDicomStudy.TrialId, ignoreQueryFilters: true).Select(x => x.MaxNoneDicomCode).DefaultIfEmpty().MaxAsync(); optEntity = await _noneDicomStudyRepository.InsertFromDTOAsync(addOrEditNoneDicomStudy); optEntity.Code = code + 1; + await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == addOrEditNoneDicomStudy.TrialId, u => new Trial() { MaxNoneDicomCode = optEntity.Code }); optEntity.StudyCode = AppSettings.GetCodeStr(optEntity.Code, nameof(NoneDicomStudy)); diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs index 96a6781cb..cb899be04 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs @@ -1,14 +1,23 @@ -using IRaCIS.Core.Application.Contracts; +using FellowOakDicom; +using FellowOakDicom.Imaging; +using FellowOakDicom.IO.Buffer; +using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.Service.ImageAndDoc.DTO; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; +using MathNet.Numerics; using Medallion.Threading; using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Components.Forms; +using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Hosting; using NetTopologySuite.Algorithm; +using SharpCompress.Common; using SkiaSharp; +using System.Data; using System.Drawing; using ZiggyCreatures.Caching.Fusion; @@ -29,7 +38,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc IRepository _systemAnonymizationRepository, IRepository _noneDicomStudyRepository, IDistributedLockProvider _distributedLockProvider, IOSSService _oSSService, - IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, IStudyService + IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache, IWebHostEnvironment _hostEnvironment) : BaseService, IStudyService { @@ -69,6 +78,268 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc } + private static async Task TryWriteMergedDicomAsync(Func> sourceFactory, Stream output) + { + try + { + #region 方式一 有的必须在内存中,不能用这种 + //await using var source = await sourceFactory(); + //// 如果你是从 stream 打开 + //var dicomFile = await DicomFile.OpenAsync(source); + #endregion + + #region 方式二 + + await using var source = await sourceFactory(); + + // 【关键修复】将 OSS 流缓冲到 MemoryStream + using var bufferedStream = new MemoryStream(); + + if (source.CanSeek) + { + source.Position = 0; + + } + else + { + // 完全复制到内存流 + await source.CopyToAsync(bufferedStream); + bufferedStream.Position = 0; // 重置位置 + } + + // 如果你是从 stream 打开 + var dicomFile = await DicomFile.OpenAsync(source.CanSeek ? source : bufferedStream); + + #endregion + + //获取像素是否为封装形式 + var syntax = dicomFile.Dataset.InternalTransferSyntax; + + //对于封装像素的文件做转换 + if (syntax.IsEncapsulated) + { + // 获取 Pixel Data 标签 + var pixelData = DicomPixelData.Create(dicomFile.Dataset); + + // 创建一个新的片段序列 + var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); + // 获取每帧数据并封装为单独的片段 + for (int n = 0; n < pixelData.NumberOfFrames; n++) + { + var frameData = pixelData.GetFrame(n); + newFragments.Fragments.Add(new MemoryByteBuffer(frameData.Data)); + } + + //var frag = dicomFile.Dataset.GetDicomItem(DicomTag.PixelData); + + //var originOffsetTable = frag?.OffsetTable; + + //newFragments.OffsetTable.AddRange(originOffsetTable?.ToArray()); + // 替换原有的片段序列 + dicomFile.Dataset.AddOrUpdate(newFragments); + } + + await dicomFile.SaveAsync(output); + return true; + } + catch (Exception ex) + { + // 只记录,不传播 + Log.Logger.Warning($"TryWriteMergedDicomAsync failed: {ex.Message}"); + return false; + } + } + + private static async Task TryWriteSplitDicomAsync(Stream input) + { + var dicomFile = await DicomFile.OpenAsync(input); + + var numberOfFrames = dicomFile.Dataset.GetSingleValueOrDefault(DicomTag.NumberOfFrames, 1); + + //多帧处理逻辑 + if (numberOfFrames > 1) + { + //一定要有像素数据才处理 + var pixelData = DicomPixelData.Create(dicomFile.Dataset); + + if (pixelData != null) + { + try + { + + + var syntax = pixelData.Syntax; + + // 每个 fragment 固定大小 (64KB 示例,可以自己调整) + int fragmentSize = 20 * 1024; + + + + var frag = dicomFile.Dataset.GetDicomItem(DicomTag.PixelData); + + int fragmentCount = frag?.Fragments?.Count() ?? 0; + + var originOffsetTable = frag?.OffsetTable; //有可能没有表,需要自己重建 + + var bot = new List(); + + uint botOffset = 0; + + //需要拆成固定片段的 + if (syntax.IsEncapsulated && fragmentCount == pixelData.NumberOfFrames && numberOfFrames > 1) + { + + var newFragments = new DicomOtherByteFragment(DicomTag.PixelData); + + + for (int n = 0; n < pixelData.NumberOfFrames; n++) + { + var frameData = pixelData.GetFrame(n); + var data = frameData.Data; + + // 当前 frame 起始 offset + bot.Add(botOffset); + + int offset = 0; + + while (offset < data.Length) + { + int size = Math.Min(fragmentSize, data.Length - offset); + + var buffer = new byte[size]; + Buffer.BlockCopy(data, offset, buffer, 0, size); + + newFragments.Fragments.Add(new MemoryByteBuffer(buffer)); + + // 一个 fragment: + // 8-byte item header + // + fragment payload + botOffset += (uint)(8 + size); + + offset += size; + } + } + + + #region 最终使用 + + //for (int n = 0; n < pixelData.NumberOfFrames; n++) + //{ + // var frameData = pixelData.GetFrame(n); // 获取完整一帧 + // var data = frameData.Data; + // int offset = 0; + + // bot.Add(botOffset); + + // botOffset += (uint)data.Length; + + + // while (offset < data.Length) + // { + // botOffset += 8; + + + // int size = Math.Min(fragmentSize, data.Length - offset); + // var buffer = new byte[size]; + // Buffer.BlockCopy(data, offset, buffer, 0, size); + + // newFragments.Fragments.Add(new MemoryByteBuffer(buffer)); + + // offset += size; + + // } + //} + + //保留原始偏移表 + + //if (originOffsetTable.Count == pixelData.NumberOfFrames) + //{ + // newFragments.OffsetTable.AddRange(originOffsetTable.ToArray()); + + //} + //else + { + newFragments.OffsetTable.AddRange(bot.ToArray()); + + Log.Logger.Warning(bot.ToArray().ToJsonStr()); + } + + #endregion + + + dicomFile.Dataset.AddOrUpdate(newFragments); + + + } + //传递过来的就是拆分的,但是是没有偏移表的,我需要自己创建偏移表,不然生成缩略图失败 + else if (syntax.IsEncapsulated && fragmentCount > pixelData.NumberOfFrames && originOffsetTable.Count == 0) + { + + + + uint offset = 0; + + bot.Add(offset); + + var fistSize = frag.Fragments.FirstOrDefault()?.Size ?? 0; + + //和上一个大小不一样 + var isDiffrentBefore = false; + + uint count = 0; + + // 假设你知道每帧对应的 fragment 数量 + foreach (var frameFragments in frag.Fragments) + { + count++; + + if (frameFragments.Size == fistSize) + { + isDiffrentBefore = false; + // 累加这一帧所有 fragment 的大小 + offset += (uint)frameFragments.Size; + continue; + } + else + { + offset += (uint)frameFragments.Size; + isDiffrentBefore = true; + + } + + if (isDiffrentBefore) + { + //每个Fragment 也占用字节 + offset += 8 * count; + bot.Add(offset); + count = 0; + + } + + } + + bot.RemoveAt(bot.Count - 1); + // 设置到新的 PixelData + frag.OffsetTable.AddRange(bot.ToArray()); + + + + } + + } + catch (Exception ex) + { + // 只记录,不传播 + Log.Logger.Warning($"拆分 failed: {ex.Message}"); + } + } + + } + + return dicomFile; + + } + /// /// 标注遮盖影像 路径后面加了.MaskImage 就是遮盖的新路径 /// @@ -81,16 +352,16 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc } - var idPathList = new List(); + var idPathList = new List(); if (inCommand.SeriesId == null && inCommand.InstanceIdList != null) { - idPathList = await _dicomInstanceRepository.Where(t => inCommand.InstanceIdList.Contains(t.Id)).Select(t => new InstanceIdPath { Id = t.Id, Path = t.Path }).ToListAsync(); + idPathList = await _dicomInstanceRepository.Where(t => inCommand.InstanceIdList.Contains(t.Id)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } else { - idPathList = await _dicomInstanceRepository.Where(t => t.SeriesId == inCommand.SeriesId).Select(t => new InstanceIdPath { Id = t.Id, Path = t.Path }).ToListAsync(); + idPathList = await _dicomInstanceRepository.Where(t => t.SeriesId == inCommand.SeriesId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); } var errorList = new List(); @@ -105,10 +376,24 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc try { - var inputStream = await _oSSService.GetStreamFromOSSAsync(path); + + await using var inputStream = new MemoryStream(); + + if (item.IsEncapsulated) + { + + var ok = await TryWriteMergedDicomAsync(() => _oSSService.GetStreamFromOSSAsync(path), inputStream); + } + else + { + await (await _oSSService.GetStreamFromOSSAsync(path)).CopyToAsync(inputStream); + } + var outPutStream = await DicomPixelMasker.MaskAsync(inputStream, inCommand.MaskRegionList); + var needUploadDicomFile = await TryWriteSplitDicomAsync(outPutStream); + var prefix = path.Substring(1, path.LastIndexOf('/') - 1); //每次都用一个新的名字 @@ -120,7 +405,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc await _oSSService.DeleteFromPrefix(path, true); //清理缓存的里面的遮盖图,多次遮盖同一张图时,清除缓存很重要 //本身就是遮盖的图,那么就要要替换guid - var length = Guid.Empty.ToString().Length + ".MaskDicom_".Length ; + var length = Guid.Empty.ToString().Length + ".MaskDicom_".Length; var restorePath = item.Path[..^length]; @@ -132,18 +417,24 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc maskFileName = $"{Path.GetFileName(path)}.MaskDicom_{batchId}"; } - await _oSSService.UploadToOSSAsync(outPutStream, prefix, maskFileName, false); + + // 直接写入内存 + await using var uploadStream = new MemoryStream(); + await needUploadDicomFile.SaveAsync(uploadStream); + uploadStream.Position = 0; + + await _oSSService.UploadToOSSAsync(uploadStream, prefix, maskFileName, false); var newPath = $"/{prefix}/{maskFileName}"; - okList.Add(new InstanceIdPath() { Id = item.Id, Path = newPath }); + okList.Add(new InstanceIdPath() { Id = item.InstanceId, Path = newPath }); - await _dicomInstanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new DicomInstance() { Path = newPath, IsMasked = true }); + await _dicomInstanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.InstanceId, u => new DicomInstance() { Path = newPath, IsMasked = true }); } catch (Exception ex) { - errorList.Add(new InstanceIdPath() { Id = item.Id, Path = path }); + errorList.Add(new InstanceIdPath() { Id = item.InstanceId, Path = path }); Log.Logger.Error(ex, $"StudyMaskImage Error for InstanceIdList Path:{path} {ex.Message}"); } @@ -396,7 +687,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc using (await @lock.AcquireAsync()) { //查询数据库获取最大的Code 没有记录则为0 - var dbStudyCodeIntMax = _dicomStudyRepository.Where(s => s.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max(); + var dbStudyCodeIntMax = _trialRepository.Where(s => s.Id == trialId, ignoreQueryFilters: true).Select(t => t.MaxDicomCode).DefaultIfEmpty().Max(); //获取缓存中的值 并发的时候,需要记录,已被占用的值 这样其他线程在此占用的最大的值上递增 var cacheMaxCodeInt = await _fusionCache.GetOrDefaultAsync(CacheKeys.TrialStudyMaxCode(trialId)); @@ -405,6 +696,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc addStudy.Code = currentNextCodeInt; + await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialId, u => new Trial() { MaxDicomCode = addStudy.Code }); + addStudy.StudyCode = AppSettings.GetCodeStr(currentNextCodeInt, nameof(DicomStudy)); await _fusionCache.SetAsync(CacheKeys.TrialStudyMaxCode(trialId), addStudy.Code, TimeSpan.FromMinutes(30)); diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs index 622806d77..cf5f5675f 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/_MapConfig.cs @@ -185,7 +185,9 @@ namespace IRaCIS.Core.Application.Service CreateMap(); - + CreateMap() + .ForMember(d => d.InstanceId, u => u.MapFrom(s => s.Id)); + } } diff --git a/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs b/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs index 3bbbcfcdd..24533ec03 100644 --- a/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs +++ b/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs @@ -207,7 +207,7 @@ namespace IRaCIS.Application.Contracts public bool IsTestUser { get; set; } - + public UserWorkLanguage UserWorkLanguage { get; set; } } /// @@ -338,6 +338,8 @@ namespace IRaCIS.Application.Contracts public Guid? AuditRecordId { get; set; } public bool? IsAuditRecordUserSelect { get; set; } + + public UserWorkLanguage? UserWorkLanguage { get; set; } } public class UserRoleInfoDTO diff --git a/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs b/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs index b98d1f12b..69312d4b9 100644 --- a/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserFeedBackService.cs @@ -103,7 +103,7 @@ namespace IRaCIS.Core.Application.Service addOrEditUserFeedBack.SubjectVisitId = info.SourceSubjectVisitId; } - addOrEditUserFeedBack.State = 0;//设置解决后IR 更新反馈自动变为未解决 + //addOrEditUserFeedBack.State = 0;//设置解决后IR 更新反馈自动变为未解决 } else if (addOrEditUserFeedBack.SubjectVisitId != null) diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index fa46dfa78..c8cdf0cd7 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -359,6 +359,8 @@ namespace IRaCIS.Core.Application.Service await _mailVerificationService.AnolymousSendEmailForResetAccount(email, verificationCode); + await _fusionCache.RemoveAsync(CacheKeys.UserLoginError(existUser.UserName)); + await _fusionCache.RemoveByTagAsync(CacheKeys.UserMFATag(existUser.Id)); return ResponseOutput.Ok(); @@ -440,7 +442,16 @@ namespace IRaCIS.Core.Application.Service await _userLogRepository.AddAsync(new UserLog() { IP = _userInfo.IP, ActionIdentityUserId = identityUserId, ActionUserName = _userInfo.UserName, TargetIdentityUserId = identityUserId, OptType = UserOptType.UnloginModifyPasswoed }, true); - await _mailVerificationService.AfterUserModifyPasswordSendEmailAsync(identityUserId); + try + { + await _mailVerificationService.AfterUserModifyPasswordSendEmailAsync(identityUserId); + } + catch (Exception) + { + + + } + var find = await _identityUserRepository.FindAsync(identityUserId); @@ -532,6 +543,7 @@ namespace IRaCIS.Core.Application.Service .WhereIf(inQuery.UserCeateSource != null, t => t.UserCeateSource == inQuery.UserCeateSource) .WhereIf(inQuery.AuditRecordId != null && inQuery.IsAuditRecordUserSelect == true, t => t.AuditRecordList.Any(t => t.AuditRecordId == inQuery.AuditRecordId)) .WhereIf(inQuery.AuditRecordId != null && inQuery.IsAuditRecordUserSelect == false, t => !t.AuditRecordList.Any(t => t.AuditRecordId == inQuery.AuditRecordId)) + .WhereIf(inQuery.UserWorkLanguage != null, t => t.UserWorkLanguage == inQuery.UserWorkLanguage) .ProjectTo(_mapper.ConfigurationProvider); var pageList = await userQueryable.ToPagedListAsync(inQuery); @@ -1267,6 +1279,7 @@ namespace IRaCIS.Core.Application.Service PermissionStr = t.UserTypeRole.PermissionStr, UserName = t.IdentityUser.UserName, UserTypeShortName = t.UserTypeRole.UserTypeShortName, + UserWorkLanguage=t.IdentityUser.UserWorkLanguage }).FirstOrDefaultAsync(); await _userLogRepository.AddAsync(new UserLog() { IP = _userInfo.IP, ActionIdentityUserId = userTokenInfo.IdentityUserId, ActionUserName = $"{userTokenInfo.UserName}", ActionUserType = userTokenInfo.UserTypeShortName, OptType = UserOptType.LoginSelectRole }, true); diff --git a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs index f1783a48d..058541605 100644 --- a/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs +++ b/IRaCIS.Core.Application/Service/QC/DTO/QARecordViewModel.cs @@ -263,6 +263,12 @@ namespace IRaCIS.Core.Application.Contracts.DTO public class TrialVisitQADTO { + + /// + /// QC质控下载 + /// + public bool IsSupportQCDownloadImage { get; set; } = false; + public bool ExistsManual { get; set; } public bool IsHaveStudyClinicalData { get; set; } public bool QCRiskControl { get; set; } diff --git a/IRaCIS.Core.Application/Service/QC/QCListService.cs b/IRaCIS.Core.Application/Service/QC/QCListService.cs index b8171f468..ac09557a7 100644 --- a/IRaCIS.Core.Application/Service/QC/QCListService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCListService.cs @@ -416,6 +416,7 @@ namespace IRaCIS.Core.Application.Image.QA List secondReviewList = new List(); + var isSupportQCImageDownload = _trialRepository.Where(t => t.Id == sv.TrialId).Select(t => t.IsSupportQCDownloadImage).FirstOrDefault(); if (sv.SecondReviewState != SecondReviewState.None) { @@ -454,6 +455,7 @@ namespace IRaCIS.Core.Application.Image.QA return new TrialVisitQADTO { + IsSupportQCDownloadImage = isSupportQCImageDownload, QCQuestionAnswerList = qacheckList, QCRiskControl = _verifyConfig.CurrentValue.QCRiskControl, SecondReviewList = secondReviewList, @@ -771,7 +773,7 @@ namespace IRaCIS.Core.Application.Image.QA var query = _inspectionFileRepository.Where(t => t.TrialId == inQuery.TrialId && (t.CheckState == EDCCheckState.Success || t.CheckState == EDCCheckState.Failed)) .ProjectTo(_mapper.ConfigurationProvider); - return await query.ToPagedListAsync(inQuery,nameof(GetUserUploadFileDto.CreateTime)); + return await query.ToPagedListAsync(inQuery, nameof(GetUserUploadFileDto.CreateTime)); } diff --git a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs index b4c2e1982..023e3f15c 100644 --- a/IRaCIS.Core.Application/Service/QC/QCOperationService.cs +++ b/IRaCIS.Core.Application/Service/QC/QCOperationService.cs @@ -1111,12 +1111,12 @@ namespace IRaCIS.Core.Application.Image.QA var visit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId); - var isExistStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(t => t.TrialId == visit.TrialId && t.ClinicalDataLevel == ClinicalLevel.Study&&t.IsConfirm&&t.IsApply); - if(isExistStudyClinicalData) + var isExistStudyClinicalData = await _clinicalDataTrialSetRepository.AnyAsync(t => t.TrialId == visit.TrialId && t.ClinicalDataLevel == ClinicalLevel.Study && t.IsConfirm && t.IsApply); + if (isExistStudyClinicalData) { List modalitieTypes = new List() { "PT、CT", "CT、PT", "PET-CT" }; - var studyList=await _dicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId&& modalitieTypes.Contains(t.Modalities)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + var studyList = await _dicomStudyRepository.Where(t => t.SubjectVisitId == subjectVisitId && modalitieTypes.Contains(t.Modalities)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); if (studyList.Any(x => x.IsHasEmptyPatientInfo)) { return ResponseOutput.NotOk(_localizer["QCOperation_IsHasEmptyPatientInfo"]); @@ -1189,7 +1189,7 @@ namespace IRaCIS.Core.Application.Image.QA await _scpStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == id, u => new SCPStudy() { SubjectVisitId = null }); - if (fisrtPath.IsNotNullOrEmpty()) + if (fisrtPath.IsNotNullOrEmpty() && study.IsFromPACS == false) { var prefix = fisrtPath.Substring(1, fisrtPath.LastIndexOf('/') - 1); @@ -1230,7 +1230,7 @@ namespace IRaCIS.Core.Application.Image.QA string cacheKey = CacheKeys.UserQCSkipTask(_userInfo.UserRoleId); - + await _fusionCache.SetAsync(cacheKey, new List(), TimeSpan.FromMinutes(60)); return ResponseOutput.Ok(); @@ -1393,12 +1393,12 @@ namespace IRaCIS.Core.Application.Image.QA // 获取当前缓存中的访视Id集合(如果没有则创建空集合) - var skippedVisits = await _fusionCache.GetOrDefaultAsync>(CacheKeys.UserQCSkipTask(_userInfo.UserRoleId), new List() { }); + var skippedVisits = await _fusionCache.GetOrDefaultAsync>(CacheKeys.UserQCSkipTask(_userInfo.UserRoleId), new List() { }); //跳过当前访视 if (inDto.IsSkipCurrentVisit) { skippedVisits.Add(inDto.SubjectVisitId); - + currentActionList = currentActionList.Where(t => !skippedVisits.Contains(t.SubjectVisitId)).ToList(); } @@ -1449,7 +1449,7 @@ namespace IRaCIS.Core.Application.Image.QA //跳过当前访视 if (inDto.IsSkipCurrentVisit) - { + { visitList = visitList.Where(t => !skippedVisits.Contains(t.SubjectVisitId)).ToList(); } diff --git a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs index 75cf1e7f8..e7caa0efd 100644 --- a/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ClinicalData/ReadingClinicalDataService.cs @@ -381,7 +381,7 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task UpdateReadModuleClinicalData(UpdateReadModuleClinicalDataInDto inDto) { - var data = await _readingClinicalDataRepository.FirstOrDefaultAsync(t => t.Id == inDto.ReadingClinicalDataId); + var data = await _readingClinicalDataRepository.FirstOrDefaultNoTrackingAsync(t => t.Id == inDto.ReadingClinicalDataId); await _readingClinicalDataRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.ReadingClinicalDataId, x => new ReadingClinicalData() { diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs index 30a716503..c52a60dcd 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingImageTaskViewModel.cs @@ -480,6 +480,22 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto /// public ValueUnit? Unit { get; set; } + + /// + /// 数值类型 + /// + public ValueOfType? ValueType { get; set; } + + /// + /// 自定义单位 + /// + public string? CustomUnit { get; set; } + + /// + /// 类型 + /// + public string? Type { get; set; } + public List ChartDataList { get; set; } @@ -536,6 +552,21 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public ReportChartType? ChartType { get; set; } public string GroupName { get; set; } public ValueUnit? Unit { get; set; } + + /// + /// 数值类型 + /// + public ValueOfType? ValueType { get; set; } + + /// + /// 自定义单位 + /// + public string? CustomUnit { get; set; } + + /// + /// 类型 + /// + public string? Type { get; set; } public List VisitTaskNameList { get; set; } = new List(); public List LatestScanDateList { get; set; } = new List(); public List ChartDataList { get; set; } = new List(); diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/SegmentationViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/SegmentationViewModel.cs index 4d8ff72f0..0a19c532b 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/SegmentationViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/SegmentationViewModel.cs @@ -54,6 +54,16 @@ public class SegmentationAddOrEdit public Guid VisitTaskId { get; set; } + /// + /// 文件大小,单位字节 + /// + public long FileSize { get; set; } = 0; + + /// + /// SEGUpdateTime 更新时间 + /// + public DateTime? SEGUpdateTime { get; set; } + } public class SegmentationQuery:PageInput @@ -77,7 +87,44 @@ public class SegmentationQuery:PageInput public Guid? TrialId { get; set; } public Guid? VisitTaskId { get; set; } - } +} + +public class SegmentationVersionView +{ + public Guid Id { get; set; } + public Guid SegmentationId { get; set; } + public int Version { get; set; } + public string SegmentationJson { get; set; } + public string SEGUrl { get; set; } + public long FileSize { get; set; } + public DateTime CreateTime { get; set; } + public string CreateUserName { get; set; } + + /// + /// 版本开始时间 + /// + public DateTime? StartTime { get; set; } +} + +public class SaveSegmentationVersionAsyncInDto +{ + public Guid SegmentationId { get; set; } + + public string SEGUrl { get; set; } + + public bool IsRestore { get; set; } = false; +} + +public class SegmentationVersionQuery : PageInput +{ + public Guid SegmentationId { get; set; } +} + +public class RestoreSegmentationVersionInDto +{ + public Guid SegmentationId { get; set; } + public Guid VersionId { get; set; } +} diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs index a8de462dc..f43ae6e89 100644 --- a/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ReadingPeriod/ReadModuleService.cs @@ -1174,7 +1174,8 @@ namespace IRaCIS.Core.Application.Service throw new BusinessValidationFailedException(_localizer["ReadModule_TumorExists"]); } - if (await _visitTaskRepository.AnyAsync(x => readModuleId == x.SouceReadModuleId)) + + if (await _visitTaskRepository.AnyAsync(x => readModuleId == x.SouceReadModuleId && (x.TaskState==TaskState.Effect||x.ReadingTaskState==ReadingTaskState.HaveSigned))) { //---当前阅片已生成任务,操作失败。 throw new BusinessValidationFailedException(_localizer["ReadModule_TaskGenerated"]); @@ -1183,7 +1184,7 @@ namespace IRaCIS.Core.Application.Service // 如果生成了 访视级别的阅片期裁判 不让删除 if (criterionInfo.IsArbitrationReading && criterionInfo.IsReadingPeriod && !criterionInfo.IsGlobalReading && criterionInfo.ArbitrationRule == ArbitrationRule.Reading) { - if (await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == readModule.SubjectVisitId && x.ReadingCategory == ReadingCategory.Judge)) + if (await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == readModule.SubjectVisitId && x.ReadingCategory == ReadingCategory.Judge && (x.TaskState == TaskState.Effect || x.ReadingTaskState == ReadingTaskState.HaveSigned))) { //---当前阅片已生成裁判任务,操作失败。 throw new BusinessValidationFailedException(_localizer["ReadModule_JudgeTaskGenerated"]); diff --git a/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs b/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs index ba580fcb5..b59c5ba8c 100644 --- a/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs +++ b/IRaCIS.Core.Application/Service/Reading/Segment/SegmentationService.cs @@ -4,15 +4,17 @@ // 生成时间 2026-03-10 06:17:28Z // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- -using IRaCIS.Core.Domain.Models; -using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; +using IRaCIS.Core.Application.MassTransit.Command; using IRaCIS.Core.Application.ViewModel; -using IRaCIS.Core.Infrastructure.Extention; -using System.Threading.Tasks; +using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Infra.EFCore; -using Microsoft.Extensions.Logging; +using IRaCIS.Core.Infrastructure.Extention; +using MassTransit; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; +using System.Threading.Tasks; namespace IRaCIS.Core.Application.Service; @@ -33,6 +35,7 @@ public class SegmentationService(IRepository _segmentationReposito IRepository _segmentRepository, IRepository _readingQuestionTrialRepository, IRepository _readingTableQuestionTrialRepository, + IRepository _segmentationVersionRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer): BaseService, ISegmentationService { @@ -69,17 +72,122 @@ public class SegmentationService(IRepository _segmentationReposito /// /// [HttpPost] - public async Task AddOrUpdateSegmentation(SegmentationAddOrEdit addOrEditSegmentation) - { - + public async Task AddOrUpdateSegmentation(SegmentationAddOrEdit addOrEditSegmentation) + { + if (addOrEditSegmentation.Id != null) + { + var data= await _segmentationRepository.FirstOrDefaultNoTrackingAsync(x => x.Id == addOrEditSegmentation.Id); + if (addOrEditSegmentation.SEGUrl != data.SEGUrl) + { + addOrEditSegmentation.SEGUpdateTime = DateTime.Now; + } + else + { + addOrEditSegmentation.SEGUpdateTime = data.SEGUpdateTime; + } - var entity = await _segmentationRepository.InsertOrUpdateAsync(addOrEditSegmentation, true); - + await SaveSegmentationVersionAsync(new SaveSegmentationVersionAsyncInDto() { SegmentationId = addOrEditSegmentation.Id.Value, SEGUrl = addOrEditSegmentation.SEGUrl }); + } + var entity = await _segmentationRepository.InsertOrUpdateAsync(addOrEditSegmentation, true); return ResponseOutput.Ok(entity.Id.ToString()); - - } + } + /// + /// 添加新版本 + /// + /// + /// + public async Task SaveSegmentationVersionAsync(SaveSegmentationVersionAsyncInDto inDto) + { + var data = await _segmentationRepository.FirstOrDefaultNoTrackingAsync(x => x.Id == inDto.SegmentationId); + // 如果是新增或修改,记录一条版本信息 + var maxVersion = await _segmentationVersionRepository + .Where(x => x.SegmentationId == data.Id) + .OrderByDescending(x => x.Version) + .FirstOrDefaultAsync(); + + + var startTime = maxVersion != null ? maxVersion.CreateTime :(data.SEGUpdateTime==null? DateTime.MinValue: data.SEGUpdateTime.Value); + + var segmentList = await _segmentRepository + .Where(x=>x.CreateTime<= startTime && (!x.IsDeleted||x.DeletedTime> startTime)) + + .Where(x => x.SegmentationId == inDto.SegmentationId).OrderBy(x=>x.SegmentNumber).IgnoreQueryFilters().ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + if (data.SEGUrl != string.Empty&&(inDto.SEGUrl!=data.SEGUrl||inDto.IsRestore)) + { + + + var newVersion = maxVersion == null ? 1 : maxVersion.Version + 1; + + + + var versionEntity = new SegmentationVersion + { + SegmentationId = data.Id, + Version = newVersion, + SegmentationJson = data.SegmentationJson, + SEGUrl = data.SEGUrl, + FileSize = data.FileSize, + SegmentList= segmentList, + StartTime= startTime, + }; + + await _segmentationVersionRepository.AddAsync(versionEntity); + + await _segmentationRepository.SaveChangesAsync(); + } + + } + + + /// + /// 获取分割组历史版本 + /// + /// + /// + [HttpPost] + public async Task> GetSegmentationVersionList(SegmentationVersionQuery inQuery) + { + var versionQueryable = _segmentationVersionRepository + .Where(x => x.SegmentationId == inQuery.SegmentationId) + .ProjectTo(_mapper.ConfigurationProvider); + var defalutSortArray = new string[] { nameof(SegmentationVersion.Version) + " desc" }; + var pageList = await versionQueryable.ToPagedListAsync(inQuery, defalutSortArray); + + return pageList; + } + + /// + /// 恢复分割组历史版本 + /// + /// + /// + [HttpPost] + public async Task RestoreSegmentationVersion(RestoreSegmentationVersionInDto inDto) + { + var version = await _segmentationVersionRepository.Where(x => x.Id == inDto.VersionId && x.SegmentationId == inDto.SegmentationId).FirstNotNullAsync(); + var segmentation = await _segmentationRepository.Where(x => x.Id == inDto.SegmentationId).FirstNotNullAsync(); + + await SaveSegmentationVersionAsync(new SaveSegmentationVersionAsyncInDto() { SegmentationId=inDto.SegmentationId,IsRestore=true,}); + await _segmentationRepository.UpdatePartialFromQueryAsync(x => x.Id == inDto.SegmentationId, t => new Segmentation + { + SegmentationJson = version.SegmentationJson, + SEGUrl = version.SEGUrl, + FileSize = version.FileSize, + }); + + var segmentList = _mapper.Map>(version.SegmentList); + + await _segmentRepository.BatchDeleteNoTrackingAsync(x => x.SegmentationId == inDto.SegmentationId); + await _segmentRepository.AddRangeAsync(segmentList); + + await _segmentationRepository.SaveChangesAsync(); + + await DeleteBindingsAndAnswersAsync(inDto.SegmentationId, null); + return ResponseOutput.Ok(); + } /// /// 删除分割组 @@ -161,7 +269,7 @@ public class SegmentationService(IRepository _segmentationReposito public async Task DeleteSegment(Guid segmentId) { await DeleteBindingsAndAnswersAsync(null, segmentId); - var success = await _segmentRepository.DeleteFromQueryAsync(t => t.Id == segmentId, true); + var success = await _segmentRepository.SoftDeleteFromQueryAsync(t => t.Id == segmentId, true); return ResponseOutput.Ok(); } diff --git a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs index 13a79940d..5cc7fda9b 100644 --- a/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/Reading/_MapConfig.cs @@ -1,4 +1,4 @@ -using AutoMapper; +using AutoMapper; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; @@ -17,6 +17,9 @@ namespace IRaCIS.Core.Application.Service // 在此处拷贝automapper 映射 + CreateMap(); + CreateMap(); + CreateMap(); CreateMap().ReverseMap(); @@ -25,6 +28,8 @@ namespace IRaCIS.Core.Application.Service CreateMap(); CreateMap().ReverseMap(); + CreateMap(); + // 在此处拷贝automapper 映射 CreateMap() diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs index 4f536da8e..e99eba672 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/General/ReadingCalculateService.cs @@ -55,6 +55,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate {CriterionType.IVUS,typeof(IVUSCalculateService) }, {CriterionType.OCT,typeof(OCTCalculateService) }, {CriterionType.MRIPDFF,typeof(MRIPDFFCalculateService) }, + {CriterionType.MRIPDFFAdvance,typeof(MRIPDFFAdvanceCalculateService) }, {CriterionType.mRECISTHCC,typeof(MRECISTHCCCalculateService) }, }; @@ -293,6 +294,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); result.ChartDataList = reportData.ChartDataList; result.Unit = reportData.Unit; + result.CustomUnit = reportData.CustomUnit; + reportData.Type=reportData.Type; + result.ValueType=reportData.ValueType; } else if (inDto.QuestionId != null) { @@ -301,6 +305,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (question != null) { result.Unit = question.Unit; + result.Type = question.Type; + result.ValueType = question.ValueType; + result.CustomUnit = question.CustomUnit; ReportChartData chartData = new ReportChartData() { Name = question.QuestionName, @@ -329,6 +336,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate if (lesion != null) { result.Unit = lesion.Unit; + result.Type = lesion.Type; + result.ValueType = lesion.ValueType; + result.CustomUnit = lesion.CustomUnit; ReportChartData chartData = new ReportChartData() { Name = lesion.QuestionName, @@ -390,11 +400,17 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { chartData.Value.Add(item.Childrens.Where(x => x.QuestionMark == QuestionMark.ShortAxis).Select(x => x.Answer[i].Answer).FirstOrDefault()); result.Unit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Unit).FirstOrDefault(); + result.Type = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Type).FirstOrDefault(); + result.ValueType = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.ValueType).FirstOrDefault(); + result.CustomUnit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.CustomUnit).FirstOrDefault(); } else { chartData.Value.Add(item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Answer[i].Answer).FirstOrDefault()); result.Unit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Unit).FirstOrDefault(); + result.Type = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.Type).FirstOrDefault(); + result.ValueType = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.ValueType).FirstOrDefault(); + result.CustomUnit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.MajorAxis).Select(x => x.CustomUnit).FirstOrDefault(); } break; @@ -402,6 +418,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate case CriterionType.Lugano2014WithoutPET: chartData.Value.Add(item.Childrens.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.Answer[i].Answer).FirstOrDefault()); result.Unit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.Unit).FirstOrDefault(); + result.Type = item.Childrens.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.Type).FirstOrDefault(); + result.ValueType = item.Childrens.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.ValueType).FirstOrDefault(); + result.CustomUnit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.PPD).Select(x => x.CustomUnit).FirstOrDefault(); break; } @@ -433,8 +452,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate chartData.Value.Add(item.Childrens.Where(x => x.QuestionMark == QuestionMark.LesionNumber).Select(x => x.Answer[i].Answer).FirstOrDefault()); result.Unit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.LesionNumber).Select(x => x.Unit).FirstOrDefault(); - - + result.Type = item.Childrens.Where(x => x.QuestionMark == QuestionMark.LesionNumber).Select(x => x.Type).FirstOrDefault(); + result.ValueType = item.Childrens.Where(x => x.QuestionMark == QuestionMark.LesionNumber).Select(x => x.ValueType).FirstOrDefault(); + result.CustomUnit = item.Childrens.Where(x => x.QuestionMark == QuestionMark.LesionNumber).Select(x => x.CustomUnit).FirstOrDefault(); } result.ChartDataList.Add(chartData); @@ -619,6 +639,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate ChartType = null, GroupName = g.GroupName, Unit = items.FirstOrDefault()?.Unit, + CustomUnit= items.FirstOrDefault()?.CustomUnit, + Type = items.FirstOrDefault()?.Type, + ValueType = items.FirstOrDefault()?.ValueType, VisitTaskNameList = alldata.VisitTaskList.Select(x => x.BlindName).ToList(), LatestScanDateList = alldata.VisitTaskList.Select(x => x.LatestScanDate).ToList(), ChartDataList = chartList @@ -648,6 +671,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }); item.ChartDataList = chart.ChartDataList; item.Unit = chart.Unit; + item.CustomUnit = chart.CustomUnit; + item.Type = chart.Type; + item.ValueType = chart.ValueType; } return item; } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFAdvanceCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFAdvanceCalculateService.cs new file mode 100644 index 000000000..06cec87ae --- /dev/null +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFAdvanceCalculateService.cs @@ -0,0 +1,568 @@ +using DocumentFormat.OpenXml.EMMA; +using IRaCIS.Core.Application.Service.Reading.Dto; +using IRaCIS.Core.Application.ViewModel; +using IRaCIS.Core.Domain.Models; +using IRaCIS.Core.Domain.Share; +using IRaCIS.Core.Infra.EFCore.Common; +using IRaCIS.Core.Infrastructure; +using MassTransit; +using Microsoft.AspNetCore.Mvc; +using System.Linq; + +namespace IRaCIS.Core.Application.Service.ReadingCalculate +{ + [ApiExplorerSettings(GroupName = "Reading")] + public class MRIPDFFAdvanceCalculateService(IRepository _readingTableQuestionAnswerRepository, + IRepository _visitTaskRepository, + IRepository _readingQuestionCriterionTrialRepository, + IRepository _readingTableQuestionTrialRepository, + IRepository _readingTableAnswerRowInfoRepository, + IRepository _readingGlobalTaskInfoRepository, + IRepository _readingQuestionTrialRepository, + IRepository _subjectVisitRepository, + IRepository _organInfoRepository, + IRepository _dictionaryRepository, + IRepository _readingTaskQuestionMarkRepository, + IRepository _dicomStudyRepository, + IRepository _noneDicomStudyRepository, + IRepository _tumorAssessmentRepository, + IGeneralCalculateService _generalCalculateService, + IRepository _readingTaskQuestionAnswerRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, ICriterionCalculateService + { + + + private List siteVisitForTumorList = new List(); + + /// + /// 阅片导入 + /// + /// + public async Task ReadingImport() + { + } + + + /// + /// 获取阅片的计算数据 + /// + /// + /// + public async Task GetReadingCalculationData(GetReadingCalculationDataInDto inDto) + { + return new + { + }; + } + + #region 删除病灶获取起始病灶序号 + /// + /// 删除病灶获取起始病灶序号 + /// + /// + public async Task GetDeleteLesionStatrIndex(DeleteReadingRowAnswerInDto inDto) + { + return 1; + + + } + #endregion + + #region 获取阅片报告 + /// + /// 获取阅片报告 + /// + /// + /// + [HttpPost] + public async Task GetReadingReportEvaluation(GetReadingReportEvaluationInDto indto) + { + GetReadingReportEvaluationOutDto result = new GetReadingReportEvaluationOutDto(); + + result.CalculateResult = await this.GetReportVerify(new GetReportVerifyInDto() + { + VisitTaskId = indto.VisitTaskId + }); + + var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync(); + + + result.ReadingTaskState = visitTaskInfo.ReadingTaskState; + var taskInfoList = await _generalCalculateService.GetReadingReportTaskList(indto.VisitTaskId); + + result.VisitTaskList = taskInfoList; + + var visitTaskIds = taskInfoList.Select(x => x.VisitTaskId).ToList(); + + var criterionId = visitTaskInfo.TrialReadingCriterionId; + var questionList = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == criterionId && x.ShowQuestion != ShowQuestion.Hide).ToListAsync(); + var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.TrialCriterionId == criterionId).OrderBy(x => x.ShowOrder).ToListAsync(); + + var lesionsIndexs = await _readingTableAnswerRowInfoRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).GroupBy(x => new { x.QuestionId }).Select(x => new lesionsIndexDto() + { + QuestionId = x.Key.QuestionId, + Rowindexs = x.Select(x => x.RowIndex).Distinct().OrderBy(x => x).ToList() + + }).ToListAsync(); + + var tableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == indto.VisitTaskId).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + var answers = await _readingTaskQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync(); + var tableAnswers = await _readingTableQuestionAnswerRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync(); + var globalanswerList = await _readingGlobalTaskInfoRepository.Where(x => visitTaskIds.Contains(x.TaskId) && x.GlobalVisitTask.TaskState == TaskState.Effect && x.Answer != string.Empty).Select(x => new Globalanswer() + { + TaskId = x.TaskId, + VisitTaskNum = x.GlobalVisitTask.VisitTaskNum, + QuestionId = x.QuestionId, + Answer = x.Answer + }).ToListAsync(); + var alltableAnsweRowInfos = await _readingTableAnswerRowInfoRepository.Where(x => visitTaskIds.Contains(x.VisitTaskId)).ToListAsync(); + var organIds = alltableAnsweRowInfos.Where(x => x.OrganInfoId != null).Select(x => x.OrganInfoId).Distinct().ToList(); + var organInfos = await _organInfoRepository.Where(x => organIds.Contains(x.Id)).ToListAsync(); + + var needChangeType = new List() { + QuestionMark.Organ, + QuestionMark.Location, + QuestionMark.Part, + }; + + // 第一级 + + List questions = await _generalCalculateService.GetReadingReportQuestion + ( + questionList, + taskInfoList, + globalanswerList, + answers, + tableAnsweRowInfos, + tableQuestionList, + alltableAnsweRowInfos, + tableAnswers, + organInfos, + needChangeType + ); + + + + result.TaskQuestions = questions; + + + + return result; + + + } + #endregion + + /// + /// 将上一次的访视病灶添加到这一次 + /// + /// + /// + public async Task AddTaskLesionAnswerFromLastTask(AddTaskLesionAnswerFromLastTaskInDto inDto) + { + var visitTaskId = inDto.VisitTaskId; + var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync(); + var isReadingTaskViewInOrder = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == taskinfo.TrialReadingCriterionId).Select(x => x.IsReadingTaskViewInOrder).FirstOrDefaultAsync(); + var baseLineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskinfo.SubjectId && x.IsBaseLine).Select(x => x.Id).FirstOrDefaultAsync(); + + if (!(await _readingTableQuestionAnswerRepository.AnyAsync(x => x.VisitTaskId == visitTaskId))) + { + + + + var dictionList = await _dictionaryRepository.Where(x => x.Parent.Code == "Liver4Segmentation").OrderBy(x => x.ShowOrder).ToListAsync(); + + + var tableQuestion = await _readingQuestionTrialRepository.Where(x => x.ReadingQuestionCriterionTrialId == taskinfo.TrialReadingCriterionId && x.LesionType == LesionType.FatFraction).FirstNotNullAsync(); + + var tableQuestionList = await _readingTableQuestionTrialRepository.Where(x => x.ReadingQuestionId == tableQuestion.Id).ToListAsync(); + var LastVisitTaskId = await _visitTaskRepository.Where(x => x.ReadingCategory == ReadingCategory.Visit && + x.TrialReadingCriterionId == taskinfo.TrialReadingCriterionId && + x.IsAnalysisCreate == taskinfo.IsAnalysisCreate && + x.DoctorUserId == taskinfo.DoctorUserId && + x.IsSelfAnalysis == taskinfo.IsSelfAnalysis && + x.SubjectId == taskinfo.SubjectId && x.ReadingTaskState == ReadingTaskState.HaveSigned && x.VisitTaskNum < taskinfo.VisitTaskNum && x.TaskState == TaskState.Effect && x.ArmEnum == taskinfo.ArmEnum + ).OrderByDescending(x => x.VisitTaskNum).Select(x => x.Id).FirstOrDefaultAsync(); + + + List marks = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == LastVisitTaskId && x.RowId != null).ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + + + marks.ForEach(x => { + + x.VisitTaskId = visitTaskId; + }); + + List rowlist = new List(); + List tableAnswerList = new List(); + + decimal num = 1; + foreach (var item in dictionList) + { + var guid = NewId.NextGuid(); + marks.ForEach(x => { + x.RowId = x.RowIndex == num ? guid : x.RowId; + }); + rowlist.Add(new ReadingTableAnswerRowInfo() + { + FristAddTaskId = visitTaskId, + IsCurrentTaskAdd = true, + BlindName = taskinfo.TaskBlindName, + OrderMark = tableQuestion.OrderMark, + VisitTaskId = visitTaskId, + TrialId = taskinfo.TrialId, + QuestionId = tableQuestion.Id, + RowIndex = num, + Id = guid, + }); + + tableAnswerList.Add(new ReadingTableQuestionAnswer() + { + QuestionId = tableQuestion.Id, + Answer = item.Code, + TableQuestionId = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.liverSegmentation).Select(x => x.Id).FirstOrDefault(), + VisitTaskId = visitTaskId, + TrialId = taskinfo.TrialId, + RowIndex = num, + RowId = guid, + }); + + foreach (var otherQuestion in tableQuestionList.Where(x => !tableAnswerList.Any(y => y.RowId == guid && y.TableQuestionId == x.Id))) + { + tableAnswerList.Add(new ReadingTableQuestionAnswer() + { + Answer = otherQuestion.DefaultValue, + QuestionId = tableQuestion.Id, + TrialId = taskinfo.TrialId, + VisitTaskId = taskinfo.Id, + RowId = guid, + RowIndex = num, + TableQuestionId = otherQuestion.Id, + }); + } + + + num++; + } + await _readingTableAnswerRowInfoRepository.AddRangeAsync(rowlist); + await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswerList); + + await _readingTaskQuestionMarkRepository.AddRangeAsync(_mapper.Map>(marks)); + await _readingTableQuestionAnswerRepository.SaveChangesAsync(); + } + + + return new AddTaskLesionAnswerFromLastTaskOutDto() + { + IsBaseLine = taskinfo.SourceSubjectVisitId == baseLineVisitId, + }; + + } + + /// + /// 测试计算 + /// + /// + /// + /// + [HttpPost] + public async Task TestCalculate(Guid visitTaskId, QuestionType type) + { + ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(visitTaskId); + await ReadingCalculate(readingData, new List() { type }); + } + + /// + /// 计算任务 + /// + /// + /// + [HttpPost] + public async Task CalculateTask(CalculateTaskInDto inDto) + { + ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId); + readingData.IsChangeOtherTask = inDto.IsChangeOtherTask; + await ReadingCalculate(readingData); + } + + + + + /// + /// 自动计算 + /// + /// + /// + /// + public async Task ReadingCalculate(ReadingCalculateDto inDto, List? calculateType = null) + { + + //await this.CalculateAvg(inDto); + inDto = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId); + var needAddList = new List(); + List calculateList = new List() + { + // 脂肪平均 + new ReadingCalculateData (){QuestionType=QuestionType.TotalMeanFraction,GetStringFun=GetFatFractionAvg}, + + // 脂肪分级 + new ReadingCalculateData (){QuestionType=QuestionType.FattyLiverGrading,GetStringFun=GetFattyLiverGrading}, + }; + + + if (calculateType != null) + { + calculateList = calculateList.Where(x => calculateType.Contains(x.QuestionType)).ToList(); + } + + + + foreach (var calculate in calculateList) + { + var item = inDto.QuestionInfo.FirstOrDefault(x => x.QuestionType == calculate.QuestionType); + + if (item != null) + { + //计算答案 + + + #region 计算答案 + if (calculate.GetDecimalFun != null) + { + item.Answer = (await calculate.GetDecimalFun(inDto)).ToString(); + + } + else if (calculate.GetDecimalNullFun != null) + { + var value = await calculate.GetDecimalNullFun(inDto); + item.Answer = value == null ? "NA" : value.Value.ToString(); + } + else if (calculate.GetStringFun != null) + { + item.Answer = await calculate.GetStringFun(inDto); + } + #endregion + // 修改修约小数位数 + + List valueOfTypes = new List() { + + ValueOfType.Decimals, + ValueOfType.Percentage + }; + + if (inDto.DigitPlaces != -1 && calculate.GetDecimalFun != null && calculate.GetDecimalNullFun != null) + { + try + { + + if (valueOfTypes.Contains(item.ValueType)) + { + item.Answer = decimal.Round(decimal.Parse(item.Answer ?? "0"), inDto.DigitPlaces, MidpointRounding.AwayFromZero).ToString("F" + inDto.DigitPlaces.ToString()); + } + } + catch (Exception) + { + + } + } + + needAddList.Add(new ReadingTaskQuestionAnswer() + { + Answer = item.Answer, + ReadingQuestionTrialId = item.QuestionId, + }); + } + } + + + + var questionIds = needAddList.Select(x => x.ReadingQuestionTrialId).ToList(); + + await _readingTaskQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => questionIds.Contains(x.ReadingQuestionTrialId) && x.VisitTaskId == inDto.VisitTaskId); + needAddList.ForEach(x => + { + x.SubjectId = inDto.SubjectId; + x.ReadingQuestionCriterionTrialId = inDto.CriterionId; + x.VisitTaskId = inDto.VisitTaskId; + x.TrialId = inDto.TrialId; + x.SubjectId = inDto.SubjectId; + }); + + await _readingTaskQuestionAnswerRepository.AddRangeAsync(needAddList); + + await _readingTaskQuestionAnswerRepository.SaveChangesAsync(); + + } + + /// + /// 获取脂肪分数平均值 + /// + /// + /// + public async Task GetFatFractionAvg(ReadingCalculateDto inDto) + { + decimal result = 0; + + var rowInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.FatFraction) + .SelectMany(x => x.TableRowInfoList).ToList(); + + var tableQuestionList = rowInfo.Where(x=>x.TableQuestionList.Any(x=>x.QuestionMark== QuestionMark.IsMeasurable && x.Answer.EqEnum(YesOrNoOrNa.Yes))).SelectMany(x => x.TableQuestionList).ToList(); + + if (rowInfo.Any(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.MRIPDFF && x.Answer.IsNullOrEmpty()))) + { + return string.Empty; + } + if (tableQuestionList.Count() == 0) + { + return "NE"; + } + result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.MRIPDFF).Average(x => x.Answer.IsNullOrEmptyReturn0()); + return decimal.Round(result, inDto.DigitPlaces, MidpointRounding.AwayFromZero).ToString("F" + inDto.DigitPlaces.ToString()); ; + + } + + /// + /// 获取脂肪肝分级 + /// + /// + /// + public async Task GetFattyLiverGrading(ReadingCalculateDto inDto) + { + var answer = inDto.QuestionInfo.Where(x => x.QuestionType == QuestionType.TotalMeanFraction).Select(x => x.Answer).FirstIsNullReturnEmpty(); + if (answer == "NE") + { + return FattyLiverClassification.NE.GetEnumInt(); + } + else if(answer == string.Empty) + { + return string.Empty; + } + + if (decimal.TryParse(answer, out var value)) + { + return value switch + { + < 5 => FattyLiverClassification.Level0.GetEnumInt(), + < 10 => FattyLiverClassification.Level1.GetEnumInt(), + < 25 => FattyLiverClassification.Level2.GetEnumInt(), + _ => FattyLiverClassification.Level3.GetEnumInt() + }; + } + + return FattyLiverClassification.NE.GetEnumInt(); + } + + /// + /// 计算平均值 + /// + /// + //public async Task CalculateAvg(ReadingCalculateDto inDto) + //{ + // // 脂肪分数的表格问题Id + // var questionInfo = inDto.QuestionInfo.Where(x => x.LesionType == LesionType.FatFraction).FirstOrDefault(); + + // List tableAnswers = new List(); + + + // foreach (var item in questionInfo.TableRowInfoList) + // { + // var avg = item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.AverageValue).FirstOrDefault(); + // var avgAnswer = string.Empty; + // List questionMarks = new List() + // { + // QuestionMark.FirstMeasurement, + // QuestionMark.SecondMeasurement, + // QuestionMark.ThirdMeasurement, + // QuestionMark.FourthMeasurement, + // }; + // var answers = item.TableQuestionList.Where(x => questionMarks.Contains(x.QuestionMark)).Select(x=>x.Answer).ToList(); + // if (answers.Count() == 4 && !answers.Any(x => x.IsNullOrEmpty())) + // { + // var avgAnswernum= answers.Select(x=>x.IsNullOrEmptyReturn0()).Average(x=>x); + // avgAnswer = decimal.Round(avgAnswernum, inDto.DigitPlaces, MidpointRounding.AwayFromZero).ToString("F" + inDto.DigitPlaces.ToString()); + // } + // if(item.TableQuestionList.Where(x => x.QuestionMark== QuestionMark.IsMeasurable).Select(x => x.Answer).FirstOrDefault().EqEnum(YesOrNoOrNa.No)) + // { + // avgAnswer = "NE"; + // } + // tableAnswers.Add(new ReadingTableQuestionAnswer() + // { + // Answer = avgAnswer, + // VisitTaskId = inDto.VisitTaskId, + // QuestionId = avg.QuestionId, + // TableQuestionId = avg.TableQuestionId, + // TrialId = inDto.TrialId, + // RowIndex = avg.RowIndex, + // RowId = avg.RowId, + + // }); + + // await _readingTableQuestionAnswerRepository.BatchDeleteNoTrackingAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowId == item.RowId && x.TableQuestionId == avg.TableQuestionId); + // } + + // await _readingTableQuestionAnswerRepository.AddRangeAsync(tableAnswers); + // await _readingTableQuestionAnswerRepository.SaveChangesAsync(); + + //} + + + + public async Task GetReportVerify(GetReportVerifyInDto inDto) + { + return new GetReportVerifyOutDto() + { + + }; + } + + public async Task VerifyVisitTaskQuestions(VerifyVisitTaskQuestionsInDto inDto) + { + ReadingCalculateDto readingData = await _generalCalculateService.GetReadingCalculateDto(inDto.VisitTaskId); + + var markList = await _readingTaskQuestionMarkRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId).ToListAsync(); + var rowInfo = readingData.QuestionInfo.Where(x => x.LesionType == LesionType.FatFraction) + .SelectMany(x => x.TableRowInfoList).ToList(); + + var tableQuestionList = rowInfo.Where(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.MRIPDFF && x.Answer.IsNotNullOrEmpty())).ToList(); + + if (tableQuestionList.Count() != 4) + { + throw new BusinessValidationFailedException(_localizer["MRIPDFF_AllNeedToBeMark"]); + } + + var instanceCount = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.InstanceId != null).Select(x => x.InstanceId).Distinct().CountAsync(); + + if (instanceCount > 1) + { + throw new BusinessValidationFailedException(_localizer["MRIPDFFAdvance_MarkMustBeSameInstance"]); + } + + //try + //{ + // List questionMarkList = new List() { QuestionMark.FirstMeasurement, QuestionMark.SecondMeasurement, QuestionMark.ThirdMeasurement, QuestionMark.FourthMeasurement }; + // var measuredValueList = rowInfo.SelectMany(x => x.TableQuestionList).Where(x =>x.Answer.IsNotNullOrEmpty()&& questionMarkList.Contains(x.QuestionMark)).Select(x => decimal.Parse(x.Answer)).ToList(); + // if (measuredValueList.Any(x => x > 100)) + // { + // throw new BusinessValidationFailedException(_localizer["MRIPDFF_MeasurementGT100"]); + // } + //} + //catch (Exception) + //{ + + // throw new BusinessValidationFailedException(_localizer["MRIPDFF_MeasurementGT100"]); + //} + + //var notableQuestionList = rowInfo.Where(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.IsMeasurable && x.Answer.EqEnum(YesOrNoOrNa.No))).ToList(); + + + //foreach (var item in notableQuestionList) + //{ + // if (markList.Any(x => x.RowId == item.RowId && x.MeasureData.IsNotNullOrEmpty())) + // { + // throw new BusinessValidationFailedException(_localizer["MRIPDFF_NeedClearMark"]); + // } + //} + + } + } +} diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs index 0b564dfd5..cbd2039a9 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/MRIPDFFCalculateService.cs @@ -408,7 +408,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var tableQuestionList = rowInfo.Where(x=>x.TableQuestionList.Any(x=>x.QuestionMark== QuestionMark.IsMeasurable && x.Answer.EqEnum(YesOrNoOrNa.Yes))).SelectMany(x => x.TableQuestionList).ToList(); - if (rowInfo.Any(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.AverageValue && x.Answer.IsNullOrEmpty()))) + if (rowInfo.Any(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.MRIPDFF && x.Answer.IsNullOrEmpty()))) { return string.Empty; } @@ -416,7 +416,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate { return "NE"; } - result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.AverageValue).Average(x => x.Answer.IsNullOrEmptyReturn0()); + result = tableQuestionList.Where(x => x.QuestionMark == QuestionMark.MRIPDFF).Average(x => x.Answer.IsNullOrEmptyReturn0()); return decimal.Round(result, inDto.DigitPlaces, MidpointRounding.AwayFromZero).ToString("F" + inDto.DigitPlaces.ToString()); ; } @@ -466,7 +466,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate foreach (var item in questionInfo.TableRowInfoList) { - var avg = item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.AverageValue).FirstOrDefault(); + var avg = item.TableQuestionList.Where(x => x.QuestionMark == QuestionMark.MRIPDFF).FirstOrDefault(); var avgAnswer = string.Empty; List questionMarks = new List() { @@ -522,7 +522,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate var rowInfo = readingData.QuestionInfo.Where(x => x.LesionType == LesionType.FatFraction) .SelectMany(x => x.TableRowInfoList).ToList(); - var tableQuestionList = rowInfo.Where(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.AverageValue && x.Answer.IsNotNullOrEmpty())).ToList(); + var tableQuestionList = rowInfo.Where(x => x.TableQuestionList.Any(x => x.QuestionMark == QuestionMark.MRIPDFF && x.Answer.IsNotNullOrEmpty())).ToList(); if (tableQuestionList.Count() != 8) { diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteEquipmentSurveyViewModel.cs b/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteEquipmentSurveyViewModel.cs index e503d80af..1b383906d 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteEquipmentSurveyViewModel.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteEquipmentSurveyViewModel.cs @@ -6,17 +6,9 @@ namespace IRaCIS.Core.Application.Contracts { /// TrialSiteEquipmentSurveyView 列表视图模型 - public class TrialSiteEquipmentSurveyView + public class TrialSiteEquipmentSurveyView: TrialSiteEquipmentSurveyAddOrEdit { - public Guid Id { get; set; } - public Guid TrialSiteSurveyId { get; set; } - public string EquipmentType { get; set; } = string.Empty; - public Guid? EquipmentTypeId { get; set; } - - public string Parameters { get; set; } = string.Empty; - public string ManufacturerName { get; set; } = string.Empty; - public string ScannerType { get; set; } = string.Empty; - public string Note { get; set; } = string.Empty; + public DateTime CreateTime { get; set; } public Guid CreateUserId { get; set; } public DateTime UpdateTime { get; set; } @@ -56,6 +48,36 @@ namespace IRaCIS.Core.Application.Contracts public string ManufacturerName { get; set; } = string.Empty; public string ScannerType { get; set; } = string.Empty; public string Note { get; set; } = string.Empty; + + + [Comment("扫描设备-New")] + public int? EquipmentTypeEnum { get; set; } + + public string OtherEquipmentType { get; set; } + + [Comment("扫描设备厂商")] + public int? ManufacturerType { get; set; } + + [Comment("磁场强度 (1.5T / 3.0T)")] + public int? MagneticFieldStrengthType { get; set; } + + [Comment("体部线圈通道数 (≥16 或 <16)")] + public int? BodyCoilChannelCount { get; set; } + + [Comment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)")] + public bool? HasDedicatedPdfFatQuantificationSequence { get; set; } + + [Comment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)")] + public int? PdfFatQuantificationSequenceType { get; set; } + + [Comment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)")] + public string OtherSequenceSpecification { get; set; } + + [Comment("是否包含 T2/R2 校正(用于铁沉积校正)")] + public bool? HasT2R2Correction { get; set; } + + [Comment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据")] + public bool? CanFullyExportPdfParameterMapsAndRawDicom { get; set; } } diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteSurveyViewModel.cs b/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteSurveyViewModel.cs index c78b39c9d..fff620e5f 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteSurveyViewModel.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteSurveyViewModel.cs @@ -130,7 +130,7 @@ namespace IRaCIS.Core.Application.Contracts /// TrialSiteSurveyView 列表视图模型 - public class TrialSiteSurveyView + public class TrialSiteSurveyView: TrialSiteSurveyAddOrEdit { public string TrialSiteCode { get; set; } = String.Empty; @@ -138,22 +138,12 @@ namespace IRaCIS.Core.Application.Contracts public string SiteName { get; set; } = string.Empty; public bool IsDeleted { get; set; } - public Guid Id { get; set; } - public Guid TrialId { get; set; } - public Guid? TrialSiteId { get; set; } + public DateTime CreateTime { get; set; } public Guid CreateUserId { get; set; } public DateTime UpdateTime { get; set; } public Guid UpdateUserId { get; set; } - public string UserName { get; set; } = string.Empty; - public string Phone { get; set; } = string.Empty; - public string Email { get; set; } = string.Empty; - public int AverageEngravingCycle { get; set; } - public bool IsConfirmImagingTechnologist { get; set; } - public string NotConfirmReson { get; set; } = string.Empty; - public int EfficacyEvaluatorType { get; set; } - public bool IsFollowStudyParameters { get; set; } - public string NotFollowReson { get; set; } = string.Empty; + public TrialSiteSurveyEnum State { get; set; } @@ -343,6 +333,34 @@ namespace IRaCIS.Core.Application.Contracts public string NotFollowReson { get; set; } = string.Empty; + [Comment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目")] + public bool? IsRoutineMRIPDEE { get; set; } + + [Comment("MRI-PDFF 单次检查时长")] + public string MRIPDFFScanTime { get; set; } + + [Comment("MRI-PDFF 预约等待时长")] + public string MRIPDFFLeadTime { get; set; } + + [Comment("MRI-PDEE 其他")] + public string MRIPDFFOther { get; set; } + + + [Comment("是否授权影像科老师参与")] + + public bool? IsAuthorizeRadiologistsParticipate { get; set; } + + [Comment("保持 1-2 名固定技师")] + public bool? AssignFixedTechnologists { get; set; } + + + [Comment("是否严格按照影像手册参数完成刻盘")] + public bool? ISStrictManualBurnFlag { get; set; } + + [Comment("不严格按照影像手册参数完成刻盘原因")] + public string NotStrictManualBurnFlagReason { get; set; } + + } diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteUserSurveyViewModel.cs b/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteUserSurveyViewModel.cs index 9310e0182..1db3ac4f8 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteUserSurveyViewModel.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/DTO/TrialSiteUserSurveyViewModel.cs @@ -139,6 +139,7 @@ namespace IRaCIS.Core.Application.Contracts public class SiteSurveyUserImportDto { + public string Country { get; set; } public string TrialSiteCode { get; set; } = string.Empty; public string FirstName { get; set; } = string.Empty; public string LastName { get; set; } = string.Empty; diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs index 2cd5e3b5a..5c58f7b63 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs @@ -134,7 +134,7 @@ namespace IRaCIS.Core.Application.Contracts if (inDto.TrialId != null) { isVirtual = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => x.TrialType != TrialType.OfficialTrial).FirstNotNullAsync(); - + await _doctorRepository.BatchUpdateNoTrackingAsync(x => x.Id == dockerInfo.Id, y => new Doctor() { IsVirtual = isVirtual, @@ -164,16 +164,16 @@ namespace IRaCIS.Core.Application.Contracts { EMail = inDto.EmailOrPhone, IsVirtual = isVirtual, - AcceptingNewTrial = inDto.TrialId == null? false:true, + AcceptingNewTrial = inDto.TrialId == null ? false : true, ActivelyReading = false, ResumeStatus = ResumeStatusEnum.Pass, - CooperateStatus = inDto.TrialId==null? ContractorStatusEnum.Noncooperation: ContractorStatusEnum.Cooperation, + CooperateStatus = inDto.TrialId == null ? ContractorStatusEnum.Noncooperation : ContractorStatusEnum.Cooperation, ReviewStatus = ReviewerInformationConfirmStatus.ConfirmRefuse }; doctor.Code = await _doctorRepository.Select(t => t.Code).DefaultIfEmpty().MaxAsync() + 1; - doctor.ReviewerCode= AppSettings.GetCodeStr(doctor.Code, nameof(Doctor)); + doctor.ReviewerCode = AppSettings.GetCodeStr(doctor.Code, nameof(Doctor)); var info = await _doctorRepository.AddAsync(doctor, true); @@ -227,7 +227,7 @@ namespace IRaCIS.Core.Application.Contracts result.DoctorId = dockerInfo.Id; result.ReviewStatus = dockerInfo.ReviewStatus; - if(inDto.TrialId != null) + if (inDto.TrialId != null) { var isVirtual = await _trialRepository.Where(x => x.Id == inDto.TrialId).Select(x => x.TrialType != TrialType.OfficialTrial).FirstNotNullAsync(); await _doctorRepository.BatchUpdateNoTrackingAsync(x => x.Id == dockerInfo.Id, y => new Doctor() @@ -659,7 +659,7 @@ namespace IRaCIS.Core.Application.Contracts if (currentLatest.Email != userInfo.ReplaceUserEmailOrPhone) { //---该中心不存在该交接人的中心调研记录表,不允许选择更新。 - return ResponseOutput.NotOk(_localizer["TrialSiteSurvey_NoRecordToUpdate"]); + return ResponseOutput.NotOk(_localizer["TrialSiteSurvey_NoRecordToUpdate", currentLatest.Email]); } @@ -976,6 +976,10 @@ namespace IRaCIS.Core.Application.Contracts generateUser.IsTestUser = true; } + //通过中心国家,设置工作语言 + var trialSiteCountry = _trialSiteRepository.Where(t => t.Id == trialSiteId).Select(t => t.Country).FirstOrDefault(); + generateUser.UserWorkLanguage = trialSiteCountry == StaticData.SiteCountry.CN ? UserWorkLanguage.CN : UserWorkLanguage.US; + generateUser.Id = NewId.NextSequentialGuid(); // 外部人员生成账号 都是外部的 generateUser.IsZhiZhun = false; @@ -1168,7 +1172,7 @@ namespace IRaCIS.Core.Application.Contracts { var addUserRoleList = item.ToList(); - var first = addUserRoleList.FirstOrDefault(); + var first = addUserRoleList.First(); var userEmail = item.Key; @@ -1219,6 +1223,10 @@ namespace IRaCIS.Core.Application.Contracts generateUser.IsTestUser = true; } + //通过中心国家,设置工作语言 + + generateUser.UserWorkLanguage = first.Country == StaticData.SiteCountry.CN ? UserWorkLanguage.CN : UserWorkLanguage.US; + generateUser.Id = NewId.NextSequentialGuid(); // 外部人员生成账号 都是外部的 diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs b/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs index b7353328d..abdcde35e 100644 --- a/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs +++ b/IRaCIS.Core.Application/Service/SiteSurvey/_MapConfig.cs @@ -39,8 +39,7 @@ namespace IRaCIS.Core.Application.AutoMapper //列表 - CreateMap() - .ForMember(t => t.EquipmentType, u => u.MapFrom(d => isEn_Us ? d.EquipmentType.Value : d.EquipmentType.ValueCN)); + CreateMap(); diff --git a/IRaCIS.Core.Application/Service/Stat/DTO/StatisticsViewModel.cs b/IRaCIS.Core.Application/Service/Stat/DTO/StatisticsViewModel.cs index e195388cb..dc96485ad 100644 --- a/IRaCIS.Core.Application/Service/Stat/DTO/StatisticsViewModel.cs +++ b/IRaCIS.Core.Application/Service/Stat/DTO/StatisticsViewModel.cs @@ -142,7 +142,7 @@ public int StatType { get; set; } //医生付费类型 CN US - public int? Nation { get; set; } + public DoctorNation? Nation { get; set; } //public AttendedReviewerType? AttendedReviewerType { get; set; } } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs index 787e7735b..e6deafbc9 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialConfigDTO.cs @@ -87,6 +87,23 @@ namespace IRaCIS.Core.Application.Contracts public List TrialObjectNameList { get; set; } + /// + /// QC质控下载 + /// + public bool IsSupportQCDownloadImage { get; set; } = false; + + /// + /// 打开失访可读 + /// + public bool IsOpenLostVistRead { get; set; } = true; + + + /// + /// 影像质控风险控制 + /// + public bool? IsImageQualityControl { get; set; } + + } public class ConfigTrialProcessInfoVerificationInDto @@ -108,11 +125,6 @@ namespace IRaCIS.Core.Application.Contracts public List TrialCriterionIds { get; set; } = new List(); - /// - /// 影像质控风险控制 - /// - public bool? IsImageQualityControl { get; set; } - public Guid TrialId { get; set; } /// diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs index 240586d0b..01fd9393c 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialSiteViewModel.cs @@ -17,6 +17,9 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string UserKeyInfo { get; set; } = String.Empty; + + public string? Country { get; set; } + } public class SiteCRCExportQueryDTO @@ -43,6 +46,8 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string TrialSiteAliasName { get; set; } = String.Empty; + public string Country { get; set; } + public bool IsDeleted { get; set; } = true; } @@ -62,6 +67,8 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string TrialSiteCode { get; set; } = String.Empty; + public string Country { get; set; } + public bool IsDeleted { get; set; } } @@ -119,6 +126,8 @@ namespace IRaCIS.Core.Application.Contracts.DTO public string SiteName { get; set; } = String.Empty; public string AliasName { get; set; } = string.Empty; + + public string Country { get; set; } } public class TrialSiteScreeningDTO diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs index c0ba58eb3..9fc0f15d2 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/TrialViewModel.cs @@ -88,6 +88,8 @@ namespace IRaCIS.Application.Contracts public string CriterionName { get; set; } = string.Empty; + public DateTime CreateTime { get; set; } + public List TrialObjectNameList { get; set; } = new List(); } @@ -243,11 +245,16 @@ namespace IRaCIS.Application.Contracts } public class TrialExtraConfig { - #region QC 影像下载 + #region QC 影像下载--下个版本删除 - //QC质控 + //QC质控下载 public bool IsSupportQCDownloadImage { get; set; } = false; + /// + /// 打开失访可读 + /// + public bool IsOpenLostVistRead { get; set; } = true; + #endregion @@ -260,20 +267,19 @@ namespace IRaCIS.Application.Contracts public List ModifyFiledList { get; set; } = new List(); + public List EquipmentControlFieldList { get; set; } = new List(); + #endregion - /// - /// 打开失访可读 - /// - public bool IsOpenLostVistRead { get; set; } = true; + } - public class TrialConfigInfo: TrialExtraConfig + public class TrialConfigInfo : TrialExtraConfig { #region 视图模型返回 项目术语配置 ,实际数据库没有配置 public List TrialObjectNameList { get; set; } @@ -288,6 +294,8 @@ namespace IRaCIS.Application.Contracts public bool IsExternalViewTrialChart { get; set; } #endregion + + public TrialDataStore TrialDataStoreType { get; set; } } public class TrialPacsInfo @@ -309,6 +317,14 @@ namespace IRaCIS.Application.Contracts } + public class SiteSurveyEquipmentField + { + public string FiledName { get; set; } + public int ShowOrder { get; set; } + + public bool IsView { get; set; } + + } } \ No newline at end of file diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs index bf1ccade5..31e5217b3 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/DTO/UserTrialViewModel.cs @@ -441,6 +441,8 @@ namespace IRaCIS.Application.Contracts public Guid TrialSiteId { get; set; } + public string Country { get; set; } + public string TrialSiteCode { get; set; } = String.Empty; public string TrialSiteName { get; set; } = String.Empty; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialSiteService.cs index 673851f1f..81b167427 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialSiteService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialSiteService.cs @@ -11,7 +11,7 @@ namespace IRaCIS.Core.Application.Interfaces Task DeleteSiteCRC(Guid id, bool isDelete); Task DeleteTrialSite(Guid id); Task> GetSiteCRCList(SiteCrcQueryDTO param); - Task<(PageOutput,object)> GetSiteCRCSimpleList(SiteCrcQueryDTO param); + Task> > GetSiteCRCSimpleList(SiteCrcQueryDTO param); Task> GetTrialSiteScreeningList(TrialSiteQuery trialSiteQuery); Task> GetTrialSiteSelect(Guid trialId); } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index 75d415e92..b6887fbeb 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -1146,6 +1146,8 @@ namespace IRaCIS.Core.Application var isInternal = _userInfo.IsZhiZhun; + var workLanguage = _userInfo.UserWorkLanguage; + var needSignTrialCount = await _trialRepository.Where(t => t.TrialStatusStr == StaticData.TrialState.TrialOngoing) .Where(t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId))) .Where(c => c.TrialDocumentList.Where(t => t.IsDeleted == false && t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId) @@ -1153,6 +1155,8 @@ namespace IRaCIS.Core.Application var needSignSysDocCont = await _systemDocumentRepository.Where(t => t.IsPublish) .Where(t => t.IsDeleted == false && !t.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null)) + .WhereIf(workLanguage == UserWorkLanguage.CN, t => t.DocLanguageType == DocLanguageType.CN || t.DocLanguageType == DocLanguageType.CN_US) + .WhereIf(workLanguage == UserWorkLanguage.US, t => t.DocLanguageType == DocLanguageType.US || t.DocLanguageType == DocLanguageType.CN_US) //外部人员 只签署 外部需要签署的 .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) .SelectMany(t => t.NeedConfirmedUserTypeList) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs index 0663cc612..c7c2610b7 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs @@ -641,7 +641,7 @@ namespace IRaCIS.Core.Application CriterionModalitys = inDto.CriterionModalitys, ReadingTool = inDto.ReadingTool, IsReadingPeriod = inDto.IsReadingPeriod, - DefaultSegmentName=inDto.DefaultSegmentName, + DefaultSegmentName = inDto.DefaultSegmentName, //DigitPlaces=inDto.DigitPlaces, IsReadingTaskViewInOrder = inDto.IsReadingTaskViewInOrder, ReadingTaskViewEnum = inDto.ReadingTaskViewEnum, @@ -1566,7 +1566,7 @@ namespace IRaCIS.Core.Application [AllowAnonymous] public async Task GetTrialExtralConfig(Guid trialId) { - var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr, t.IsExternalViewTrialChart, t.TrialObjectNameList, t.CollectImagesEnum, t.IsIQCAutoNextTask, t.IsImageQualityControl }).FirstOrDefault(); + var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr, t.TrialDataStoreType, t.IsExternalViewTrialChart, t.TrialObjectNameList, t.CollectImagesEnum, t.IsIQCAutoNextTask, t.IsImageQualityControl }).FirstOrDefault(); var extralConfig = JsonConvert.DeserializeObject(extralObj?.TrialExtraConfigJsonStr) ?? new TrialExtraConfig(); @@ -1577,7 +1577,7 @@ namespace IRaCIS.Core.Application trialConfig.IsExternalViewTrialChart = extralObj.IsExternalViewTrialChart; trialConfig.CollectImagesEnum = extralObj.CollectImagesEnum; trialConfig.IsIQCAutoNextTask = extralObj.IsIQCAutoNextTask; - + trialConfig.TrialDataStoreType = extralObj.TrialDataStoreType; return trialConfig; } diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs index 19b7e6434..0df5846fa 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialExternalUserService.cs @@ -17,6 +17,7 @@ using DocumentFormat.OpenXml.Spreadsheet; using IRaCIS.Core.Domain.Models; using IRaCIS.Application.Contracts; using MassTransit; +using System.Globalization; namespace IRaCIS.Core.Application.Service { @@ -271,6 +272,11 @@ namespace IRaCIS.Core.Application.Service generateUser.IsTestUser = true; } + //外部人员语言类型,根据PM创建时界面语言决定 + var isEn_US = _userInfo.IsEn_Us; + generateUser.UserWorkLanguage = isEn_US ? UserWorkLanguage.US : UserWorkLanguage.CN; + + // 外部人员生成账号 都是外部的 generateUser.IsZhiZhun = false; diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs index 3b1eb815d..b21c34047 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialMaintenanceService.cs @@ -26,7 +26,10 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task>> GetUserJoinedTrialList(IdentityUserJoinedTrialQuery inQuery) { - var list = await _trialIdentityUserRepository.Where(t => t.IdentityUserId == inQuery.IdentityUserId, false, true) + + var defalutSortArray = new string[] { nameof(IdentityUserJoinedTrialView.TrialCreateTime) + " desc" }; + + var list = await _trialIdentityUserRepository.Where(t => t.IdentityUserId == inQuery.IdentityUserId && t.Trial.IsDeleted==false, false, true) .WhereIf(!string.IsNullOrEmpty(inQuery.TrialCode), o => o.Trial.TrialCode.Contains(inQuery.TrialCode)) .WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.Trial.ResearchProgramNo.Contains(inQuery.ResearchProgramNo)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.Trial.ExperimentName.Contains(inQuery.ExperimentName)) @@ -53,7 +56,7 @@ namespace IRaCIS.Core.Application.Service UpdateTime = t.UpdateTime, }).ToList(), - }).ToPagedListAsync(inQuery); + }).ToPagedListAsync(inQuery, defalutSortArray); var info = await _identityUserRepository.Where(t => t.Id == inQuery.IdentityUserId).Select(t => new { t.CreateTime, t.UserCeateSource, t.Trial.ResearchProgramNo, t.Trial.ExperimentName, t.Trial.TrialCode }).FirstOrDefaultAsync(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs index e3b72be1a..53d9072c3 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialService.cs @@ -136,7 +136,8 @@ namespace IRaCIS.Core.Application.Service .WhereIf(!other.Contains(_userInfo.UserTypeEnumInt), t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.IsDeleted == false && t.TrialUserRoleList.Any(t => t.UserId == _userInfo.UserRoleId && t.IsDeleted == false)) && t.IsDeleted == false && t.TrialStatusStr == StaticData.TrialState.TrialOngoing) - .ProjectTo(_mapper.ConfigurationProvider).ToListAsync(); + .ProjectTo(_mapper.ConfigurationProvider) + .OrderByDescending(x=>x.CreateTime).ToListAsync(); } @@ -214,7 +215,9 @@ namespace IRaCIS.Core.Application.Service //var test = _trialRepository.Where(t => t.CreateTime.Year == DateTime.Now.Year + 1).Select(t => t.Code).DefaultIfEmpty(1).ToList(); var trial = _mapper.Map(trialAddModel); + //trial.Id = NewId.NextGuid(); + var yearStr = DateTime.Now.Year.ToString(); trial.Code = currentYearMaxCodeNext; @@ -247,6 +250,32 @@ namespace IRaCIS.Core.Application.Service trial.IsConfigureEmail = true; #endregion + #region 中心调研默认值 + + var trialExtalConfig = new TrialExtraConfig() + { + EquipmentControlFieldList = new List { + new SiteSurveyEquipmentField() { FiledName = "EquipmentTypeEnum", ShowOrder = 0, IsView = true }, + new SiteSurveyEquipmentField() { FiledName = "OtherEquipmentType", ShowOrder = 1, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "Parameters", ShowOrder = 2, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "ManufacturerType", ShowOrder = 3, IsView = true }, + new SiteSurveyEquipmentField() { FiledName = "ManufacturerName", ShowOrder = 4, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "ScannerType", ShowOrder = 5, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "Note", ShowOrder = 6, IsView = true }, + + + }, + NotShowFieldList = new List() { "IsRoutineMRIPDEE", "MRIPDFFScanTime", "MRIPDFFLeadTime", "MRIPDFFOther", "IsAuthorizeRadiologistsParticipate", "AssignFixedTechnologists", "ISStrictManualBurnFlag", "NotStrictManualBurnFlagReason" } + + }; + + trial.TrialExtraConfigJsonStr = trialExtalConfig.ToJsonStr(); + #endregion + //如果是PM, 则需要将该人员添加到 运维人员表 //添加运维人员PM await _trialIdentityUserRepository.AddAsync(new TrialIdentityUser() @@ -333,7 +362,7 @@ namespace IRaCIS.Core.Application.Service trial.EmailFromName = $"{_systemEmailConfig.FromName}-{trial.TrialCode}"; trial.UpdateTime = DateTime.Now; - + var success = await _trialRepository.SaveChangesAsync(); diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs index 2a4e87390..615440f8f 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialSiteService.cs @@ -101,7 +101,7 @@ namespace IRaCIS.Core.Application.Services /// [new] setting页面Site列表,和getSiteCRCList对比 没有统计数据,增加了一些site信息 [HttpPost] - public async Task<(PageOutput,object)> GetSiteCRCSimpleList(SiteCrcQueryDTO inQuery) + public async Task>> GetSiteCRCSimpleList(SiteCrcQueryDTO inQuery) { var trialinfo = await _trialRepository.Where(x => x.Id == inQuery.TrialId).FirstNotNullAsync(); @@ -110,6 +110,7 @@ namespace IRaCIS.Core.Application.Services .WhereIf(!string.IsNullOrWhiteSpace(inQuery.SiteName), t => t.TrialSiteName.Contains(inQuery.SiteName) || t.TrialSiteAliasName.Contains(inQuery.TrialSiteAliasName)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteAliasName), t => t.TrialSiteAliasName.Contains(inQuery.TrialSiteAliasName)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.TrialSiteCode), t => t.TrialSiteCode.Contains(inQuery.TrialSiteCode)) + .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Country), t => t.Country.Contains(inQuery.Country)) .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator, t => t.CRCUserList.Any(k => k.UserId == _userInfo.UserRoleId)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.UserKeyInfo), t => t.CRCUserList.Any(k => (k.UserRole.FullName).Contains(inQuery.UserKeyInfo) || k.UserRole.IdentityUser.UserName.Contains(inQuery.UserKeyInfo) || k.UserRole.IdentityUser.EMail.Contains(inQuery.UserKeyInfo))) @@ -119,8 +120,9 @@ namespace IRaCIS.Core.Application.Services var result = await siteStatQuery.ToPagedListAsync(inQuery); - return (result,new { - IsPACSConnectAndIsTrialPACSConfirmed = trialinfo.IsPACSConnect&&trialinfo.IsTrialPACSConfirmed, + return ResponseOutput.Ok(result, new + { + IsPACSConnectAndIsTrialPACSConfirmed = trialinfo.IsPACSConnect && trialinfo.IsTrialPACSConfirmed, }); } @@ -150,8 +152,8 @@ namespace IRaCIS.Core.Application.Services { var list = _siteRepository .WhereIf(!string.IsNullOrWhiteSpace(siteName), t => t.SiteName.Contains(siteName) || t.SiteNameCN.Contains(siteName) || t.AliasName.Contains(siteName)) - .Select(t => new TrialSiteSelect() { SiteId = t.Id, SiteName = _userInfo.IsEn_Us ? t.SiteName : t.SiteNameCN, AliasName = t.AliasName }).ToList() - .OrderBy(x=>x.SiteName) + .Select(t => new TrialSiteSelect() { SiteId = t.Id, SiteName = _userInfo.IsEn_Us ? t.SiteName : t.SiteNameCN, AliasName = t.AliasName, Country = t.Country }).ToList() + .OrderBy(x => x.SiteName) .ToList(); return list; diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index dcfcf84a0..026b02280 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -5,6 +5,7 @@ using IRaCIS.Core.Application.Contracts.Dicom.DTO; using IRaCIS.Core.Application.Filter; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; +using MassTransit; using Microsoft.AspNetCore.Mvc; using Pipelines.Sockets.Unofficial.Arenas; using System.Linq.Dynamic.Core; @@ -42,7 +43,7 @@ namespace IRaCIS.Core.Application.Service 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,t.FileSize }).ToListAsync();//.GroupBy(u => u.SeriesId); + .Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber, t.FileSize }).ToListAsync();//.GroupBy(u => u.SeriesId); foreach (var series in seriesList) { @@ -55,7 +56,7 @@ namespace IRaCIS.Core.Application.Service //HtmlPath = string.Empty, Path = k.Path, InstanceNumber = k.InstanceNumber, - FileSize=k.FileSize, + FileSize = k.FileSize, }).ToList(); } @@ -378,11 +379,12 @@ namespace IRaCIS.Core.Application.Service /// [HttpPost] [UnitOfWork] - [TrialGlobalLimit( "AfterStopCannNotOpt" )] + [TrialGlobalLimit("AfterStopCannNotOpt")] public async Task SubmitVisitStudyBinding(SubmitVisitStudyBindingCommand inCommand, [FromServices] IRepository _dicomstudyRepository, [FromServices] IRepository _dicomSeriesRepository, - [FromServices] IRepository _dicomInstanceRepository) + [FromServices] IRepository _dicomInstanceRepository, + [FromServices] IRepository _fileUploadRecordRepository) { //这里要做校验 + 同时验证本地系统里面的影像是否存在pacs推过来的 @@ -403,11 +405,14 @@ namespace IRaCIS.Core.Application.Service var subjectVisitId = inCommand.SubjectVisitId; var trialId = inCommand.TrialId; + var studyCode = ""; + var studyUid = ""; + var @lock = _distributedLockProvider.CreateLock($"StudyCode"); using (await @lock.AcquireAsync()) { - var dbStudyCodeIntMax = _dicomStudyRepository.Where(s => s.TrialId == inCommand.TrialId).Select(t => t.Code).DefaultIfEmpty().Max(); + var dbStudyCodeIntMax = _trialRepository.Where(s => s.Id == trialId, ignoreQueryFilters: true).Select(t => t.MaxDicomCode).DefaultIfEmpty().Max(); int currentNextCodeInt = dbStudyCodeIntMax + 1; @@ -430,6 +435,8 @@ namespace IRaCIS.Core.Application.Service newStuty.SubjectId = subjectId; newStuty.SubjectVisitId = subjectVisitId; + studyCode = newStuty.StudyCode; + await _dicomStudyRepository.AddAsync(newStuty); @@ -457,12 +464,22 @@ namespace IRaCIS.Core.Application.Service } await _dicomInstanceRepository.AddRangeAsync(newInstanceList); + + + //回更StudyCode + await _fileUploadRecordRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialId && t.Path.Contains(newStuty.StudyInstanceUid), u => new FileUploadRecord() { StudyCode = studyCode, SubjectId = newStuty.SubjectId, SubjectVisitId = newStuty.SubjectVisitId }); + + await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == trialId, u => new Trial() { MaxDicomCode = currentNextCodeInt }); + await _scpPatientRepository.BatchUpdateNoTrackingAsync(t => t.Id == find.SCPStudy.PatientId, u => new SCPPatient() { SubjectId = subjectId }); + await _scpStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == scpStudyId, u => new SCPStudy() { SubjectVisitId = subjectVisitId }); + } + currentNextCodeInt++; - await _scpPatientRepository.BatchUpdateNoTrackingAsync(t => t.Id == find.SCPStudy.PatientId, u => new SCPPatient() { SubjectId = subjectId }); - await _scpStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == scpStudyId, u => new SCPStudy() { SubjectVisitId = subjectVisitId }); + + } @@ -549,6 +566,10 @@ namespace IRaCIS.Core.Application.Service } } + + //回更StudyCode + await _fileUploadRecordRepository.BatchUpdateNoTrackingAsync(t => t.TrialId == trialId && t.Path.Contains(study.StudyInstanceUid), u => new FileUploadRecord() { StudyCode = studyCode, SubjectId = study.SubjectId, SubjectVisitId = study.SubjectVisitId }); + await _scpPatientRepository.BatchUpdateNoTrackingAsync(t => t.Id == scpStudy.PatientId, u => new SCPPatient() { SubjectId = subjectId }); await _scpStudyRepository.BatchUpdateNoTrackingAsync(t => t.Id == scpStudyId, u => new SCPStudy() { SubjectVisitId = subjectVisitId }); } diff --git a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs index d8490f58f..e0a58d493 100644 --- a/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs +++ b/IRaCIS.Core.Application/Service/Visit/SubjectVisitService.cs @@ -607,7 +607,7 @@ namespace IRaCIS.Core.Application.Services if (studyIds.Count > 0) { var instanceList = await _dicomInstanceRepository.Where(t => studyIds.Contains(t.StudyId) && t.IsReading) - .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.IsReading, t.FileSize, t.ImagePositionPatient, t.ImageOrientationPatient }).ToListAsync(); + .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber, t.Path, t.NumberOfFrames, t.WindowCenter, t.WindowWidth, t.HtmlPath, t.IsReading, t.FileSize, t.ImagePositionPatient, t.ImageOrientationPatient,t.PhotometricInterpretation }).ToListAsync(); List seriesLists = await _dicomSeriesRepository.Where(s => studyIds.Contains(s.StudyId)) .WhereIf(isManualGenerate == false, t => t.IsReading) @@ -640,7 +640,8 @@ namespace IRaCIS.Core.Application.Services HtmlPath = k.HtmlPath, Path = k.Path, InstanceNumber = k.InstanceNumber, - FileSize = k.FileSize + FileSize = k.FileSize, + PhotometricInterpretation=k.PhotometricInterpretation }).ToList(); @@ -776,7 +777,8 @@ namespace IRaCIS.Core.Application.Services InstanceNumber = k.InstanceNumber, StudyId = k.StudyId, SeriesId = k.SeriesId, - FileSize = k.FileSize + FileSize = k.FileSize, + PhotometricInterpretation=k.PhotometricInterpretation, }).ToListAsync(); item.InstanceInfoList.ForEach(x => diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs index 66d3f4225..0d6ccf558 100644 --- a/IRaCIS.Core.Application/TestService.cs +++ b/IRaCIS.Core.Application/TestService.cs @@ -83,6 +83,212 @@ namespace IRaCIS.Core.Application.Service public DateTime? DateTimeNUllValue { get; set; } } + /// + /// 维护中心调研设备默认配置 + /// + /// + /// + [AllowAnonymous] + [HttpPost] + public async Task SiteSuveryEquipment() + { + //默认配置 + var trialExtalConfig = new TrialExtraConfig() + { + EquipmentControlFieldList = new List { + new SiteSurveyEquipmentField() { FiledName = "EquipmentTypeEnum", ShowOrder = 0, IsView = true }, + new SiteSurveyEquipmentField() { FiledName = "OtherEquipmentType", ShowOrder = 1, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "Parameters", ShowOrder = 2, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "ManufacturerType", ShowOrder = 3, IsView = true }, + new SiteSurveyEquipmentField() { FiledName = "ManufacturerName", ShowOrder = 4, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "ScannerType", ShowOrder = 5, IsView = true }, + + new SiteSurveyEquipmentField() { FiledName = "Note", ShowOrder = 6, IsView = true }, + } + }; + + var fixedFields = new List() { "IsRoutineMRIPDEE", "MRIPDFFScanTime", "MRIPDFFLeadTime", "MRIPDFFOther", "IsAuthorizeRadiologistsParticipate", "AssignFixedTechnologists", "ISStrictManualBurnFlag", "NotStrictManualBurnFlagReason" }; + + //已有配置处理 + var list = _trialRepository.Where(t => t.TrialExtraConfigJsonStr != "").Select(t => new { t.Id, t.TrialExtraConfigJsonStr }).ToList(); + + foreach (var item in list) + { + var extralConfig = JsonConvert.DeserializeObject(item.TrialExtraConfigJsonStr); + + //额外配置的中心调研, + if (extralConfig.ModifyFiledList.Count > 0) + { + extralConfig.EquipmentControlFieldList = trialExtalConfig.EquipmentControlFieldList.Where(t => t.ShowOrder != 2).ToList(); + + } + else + { + extralConfig.EquipmentControlFieldList = trialExtalConfig.EquipmentControlFieldList; + + } + + if (extralConfig.NotShowFieldList.Count == 0) + { + extralConfig.NotShowFieldList.AddRange(fixedFields); + extralConfig.NotShowFieldList = extralConfig.NotShowFieldList.Distinct().ToList(); + } + else + { + //判断固定数组中是否有任意一个元素存在于 NotShowFieldList 中 + if (!fixedFields.Any(t => extralConfig.NotShowFieldList.Any(c => c == t))) + { + extralConfig.NotShowFieldList.AddRange(fixedFields); + } + } + + + + + var jsonInfo = extralConfig.ToJsonStr(); + + + + await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new Trial() { TrialExtraConfigJsonStr = jsonInfo }); + } + + + //默认配置更新 + var info = trialExtalConfig.ToJsonStr(); + + var idQuery = _trialRepository.Where(t => t.TrialExtraConfigJsonStr == "").Select(t => t.Id); + + await _trialRepository.BatchUpdateNoTrackingAsync(t => idQuery.Contains(t.Id), u => new Trial() { TrialExtraConfigJsonStr = info }); + + + + + + return ResponseOutput.Ok(); + } + + + /// + /// 访视数据模型 + /// + public class SubjectVisitExcel + { + public string SubjectCode { get; set; } + + public Guid? SubjectVisitId { get; set; } + public decimal VisitNum { get; set; } + public string VisitName { get; set; } + + public string R1 { get; set; } + + public string R1阅片状态 { get; set; } + + public string R2 { get; set; } + + public string R2阅片状态 { get; set; } + } + + [AllowAnonymous] + public async Task ExtralUndownloadImages(Guid trialId) + { + var newVisits = MiniExcel.Query(@"C:\Users\PC\Desktop\New.xlsx").ToList(); + + var oldVisits = MiniExcel.Query(@"C:\Users\PC\Desktop\Old.xlsx").ToList(); + + var downloadVisit = new List(); + + foreach (var item in newVisits) + { + if (oldVisits.Any(t => t.VisitNum == item.VisitNum && t.SubjectCode.Trim() == item.SubjectCode.Trim())) + { + continue; + } + else + { + downloadVisit.Add(item); + } + } + + + string exportPath = @$"C:\Users\PC\Desktop\newDownload.xlsx"; + MiniExcel.SaveAs(exportPath, downloadVisit); + + + #region 数据库查询 +// var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new +// { +// t.ResearchProgramNo, +// t.TrialCode, + +// VisitList = t.SubjectVisitList.Where(t => t.VisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.SourceSubjectVisitId != null && t.DoctorUserId != null)) +// //.Where(t=>subjectCodeList.Contains(t.Subject.Code)) +// .Select(sv => new +// { +// SubjectVisitId = sv.Id, +// TrialSiteCode = sv.TrialSite.TrialSiteCode, +// SubjectCode = sv.Subject.Code, +// VisitName = sv.VisitName, +// VisitNum = sv.VisitNum, +// StudyList = sv.StudyList.Select(u => new +// { +// StudyId = u.Id, +// u.PatientId, +// u.StudyTime, +// u.StudyCode, +// u.StudyInstanceUid, +// u.StudyDIRPath, + +// SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new +// { +// z.Modality, + +// InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new +// { +// InstanceId = k.Id, +// k.Path, +// k.IsEncapsulated, +// k.NumberOfFrames, +// }).ToList() +// }) + +// }).ToList(), + +// NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new +// { +// nd.Modality, +// nd.StudyCode, +// nd.ImageDate, + +// FileList = nd.NoneDicomFileList.Where(t => t.IsReading).Select(file => new +// { +// file.FileName, +// file.Path, +// file.FileType +// }).ToList() +// }).ToList() +// }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList() + +// }).FirstOrDefault(); + +// var acturalDownList = downloadInfo.VisitList.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && +//old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + +// var diffList = downloadVisit.Where(t => !acturalDownList.Any(old => old.SubjectCode.Trim() == t.SubjectCode.Trim() && +//old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); + + + +// string diffPath = @$"C:\Users\PC\Desktop\diff.xlsx"; +// MiniExcel.SaveAs(diffPath, diffList); + + #endregion + + return ResponseOutput.Ok(downloadVisit); + } //创建一个模型验证的方法 [AllowAnonymous] @@ -105,8 +311,8 @@ namespace IRaCIS.Core.Application.Service public async Task MaskImage() { - var sourceDir = @"D:\images\11\像素匿名\隐私信息2&测量值\08\08017\基线(V1)\ST01371_1970-01-01_US\IMAGE"; - var targetDir = @"D:\images\11\像素匿名\隐私信息2&测量值\08\08017\基线(V1)\ST01371_1970-01-01_US\IMAGE\after"; + var sourceDir = @"C:\work\gitea\irc-netcore-api\DownloadImage"; + var targetDir = @"C:\work\gitea\irc-netcore-api\DownloadImage\after"; Directory.CreateDirectory(targetDir); var regions = new[] diff --git a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs index 7cfec52a5..6b8592eb7 100644 --- a/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs +++ b/IRaCIS.Core.Domain.Share/Reading/ReadEnum.cs @@ -914,6 +914,12 @@ namespace IRaCIS.Core.Domain.Share /// MRIPDFF /// MRIPDFF = 21, + + /// + /// MRIPDFFAdvance + /// + + MRIPDFFAdvance = 22, } @@ -2508,7 +2514,7 @@ namespace IRaCIS.Core.Domain.Share /// /// 平均值 /// - AverageValue = 1104, + MRIPDFF = 1104, /// /// 是否可测量 @@ -2519,6 +2525,11 @@ namespace IRaCIS.Core.Domain.Share /// 肝脏分段 /// liverSegmentation = 1106, + + /// + /// 第四次测量 + /// + FourthMeasurement = 1107, } /// @@ -3226,6 +3237,11 @@ namespace IRaCIS.Core.Domain.Share /// 保存eCRF /// SaveEICRFQuestions = 12, + + /// + /// 保存Advance肝脏分段 + /// + SaveAdvanceLiverSegments = 13, } /// diff --git a/IRaCIS.Core.Domain/Dcotor/Doctor.cs b/IRaCIS.Core.Domain/Dcotor/Doctor.cs index 6056174ab..6c2b08a20 100644 --- a/IRaCIS.Core.Domain/Dcotor/Doctor.cs +++ b/IRaCIS.Core.Domain/Dcotor/Doctor.cs @@ -61,7 +61,7 @@ public class Doctor : BaseFullAuditEntity [MaxLength] public string? BlindPublications { get; set; } - + public string ChineseName { get; set; } = string.Empty; public int Code { get; set; } @@ -70,7 +70,7 @@ public class Doctor : BaseFullAuditEntity public Guid? DepartmentId { get; set; } - + public string DepartmentOther { get; set; } = string.Empty; @@ -110,10 +110,10 @@ public class Doctor : BaseFullAuditEntity public DateTime? LastLoginTime { get; set; } - + public string LastName { get; set; } = string.Empty; - public int Nation { get; set; } + public DoctorNation Nation { get; set; } public Guid OrganizationId { get; set; } [MaxLength] @@ -121,10 +121,10 @@ public class Doctor : BaseFullAuditEntity [MaxLength] public string? OtherClinicalExperienceCN { get; set; } - + public string Password { get; set; } = string.Empty; - + public string Phone { get; set; } = string.Empty; public string PhotoPath { get; set; } = string.Empty; @@ -137,24 +137,24 @@ public class Doctor : BaseFullAuditEntity public Guid? PositionId { get; set; } - + public string PositionOther { get; set; } = string.Empty; - + public string PositionOtherCN { get; set; } = string.Empty; public Guid? RankId { get; set; } - + public string RankOther { get; set; } = string.Empty; - + public string RankOtherCN { get; set; } = string.Empty; - + public string ReadingTypeOther { get; set; } = string.Empty; - + public string ReadingTypeOtherCN { get; set; } = string.Empty; [StringLength(1000)] @@ -162,7 +162,7 @@ public class Doctor : BaseFullAuditEntity public ResumeStatusEnum ResumeStatus { get; set; } = ResumeStatusEnum.Failed; - + public string ReviewerCode { get; set; } = string.Empty; public ReviewerInformationConfirmStatus ReviewStatus { get; set; } = ReviewerInformationConfirmStatus.ConfirmRefuse; @@ -281,3 +281,12 @@ public class Doctor : BaseFullAuditEntity /// public string HospitalNameCN { get; set; } = string.Empty; } + +public enum DoctorNation +{ + CN = 0, + US = 1, + Europe = 2, + Other = 3 + +} \ No newline at end of file diff --git a/IRaCIS.Core.Domain/Document/SystemDocument.cs b/IRaCIS.Core.Domain/Document/SystemDocument.cs index 9a1f5dc3d..6c75cf89a 100644 --- a/IRaCIS.Core.Domain/Document/SystemDocument.cs +++ b/IRaCIS.Core.Domain/Document/SystemDocument.cs @@ -52,6 +52,9 @@ public class SystemDocument : BaseFullDeleteAuditEntity public DateTime? PublishDate { get; set; } + public DocLanguageType DocLanguageType { get; set; } + + } @@ -106,4 +109,15 @@ public enum DocUserSignType OnlyInner=1, +} + +public enum DocLanguageType +{ + CN = 0, + + US = 1, + + //共用 + CN_US = 2 + } \ No newline at end of file diff --git a/IRaCIS.Core.Domain/Management/User.cs b/IRaCIS.Core.Domain/Management/User.cs index d2964c322..6a87a13c5 100644 --- a/IRaCIS.Core.Domain/Management/User.cs +++ b/IRaCIS.Core.Domain/Management/User.cs @@ -157,6 +157,17 @@ public class IdentityUser : BaseFullAuditEntity /// 隐私政策Id /// public Guid? PrivacyPolicyId { get; set; } + + + public UserWorkLanguage UserWorkLanguage { get; set; } + +} + + +public enum UserWorkLanguage +{ + CN = 0, + US = 1, } public enum UserCeateSource @@ -169,6 +180,6 @@ public enum UserCeateSource ReviewerSelect = 3, - External=4 + External = 4 } \ No newline at end of file diff --git a/IRaCIS.Core.Domain/Reading/Segment/Segment.cs b/IRaCIS.Core.Domain/Reading/Segment/Segment.cs index e3b4d799b..1f7444acc 100644 --- a/IRaCIS.Core.Domain/Reading/Segment/Segment.cs +++ b/IRaCIS.Core.Domain/Reading/Segment/Segment.cs @@ -11,7 +11,7 @@ namespace IRaCIS.Core.Domain.Models [Comment("分割")] [Table("Segment")] - public class Segment : BaseFullDeleteAuditEntity + public class Segment : BaseFullDeleteAuditEntity, ISegment { #region 导航属性 [JsonIgnore] @@ -114,4 +114,99 @@ namespace IRaCIS.Core.Domain.Models } + + /// + /// 继承这个接口 因为版本里面需要复制这个表的数据 + /// + public interface ISegment + { + /// + /// 分割Id + /// + Guid SegmentationId { get; set; } + + /// + /// 任务Id + /// + Guid VisitTaskId { get; set; } + + /// + /// 分割的序号 + /// + public int SegmentNumber { get; set; } + + /// + /// 分割的Json + /// + string SegmentJson { get; set; } + /// + /// SegmentName + /// + string SegmentName { get; set; } + + /// + /// 颜色 + /// + string ColorRgb { get; set; } + + /// + /// 均值 + /// + decimal? AvgValue { get; set; } + + /// + /// 最大值 + /// + decimal? MaxValue { get; set; } + + /// + /// 最小值 + /// + decimal? MinValue { get; set; } + + /// + /// 方差 + /// + decimal? Variance { get; set; } + + /// + /// 中位数 + /// + decimal? Median { get; set; } + + /// + /// 体积 + /// + decimal? Volume { get; set; } + + /// + /// 长径 + /// + decimal? MajorAxis { get; set; } + + /// + /// 短径 + /// + decimal? ShortAxis { get; set; } + + /// + /// Peak + /// + decimal? Peak { get; set; } + + /// + /// TLG + /// + decimal? TLG { get; set; } + + /// + /// MTV + /// + decimal? MTV { get; set; } + + /// + /// 是否锁定 + /// + bool IsLock { get; set; } + } } diff --git a/IRaCIS.Core.Domain/Reading/Segment/Segmentation.cs b/IRaCIS.Core.Domain/Reading/Segment/Segmentation.cs index e3e24b6e1..be7c9ca6b 100644 --- a/IRaCIS.Core.Domain/Reading/Segment/Segmentation.cs +++ b/IRaCIS.Core.Domain/Reading/Segment/Segmentation.cs @@ -7,6 +7,10 @@ public class Segmentation : BaseFullDeleteAuditEntity #region 导航属性 [JsonIgnore] public List SegmentList { get; set; } = new List(); + + [JsonIgnore] + [ForeignKey("VisitTaskId")] + public VisitTask VisitTask { get; set; } #endregion /// @@ -56,6 +60,16 @@ public class Segmentation : BaseFullDeleteAuditEntity [MaxLength] public string SEGUrl { get; set; } = string.Empty; + /// + /// SEGUpdateTime 更新时间 + /// + public DateTime? SEGUpdateTime { get; set; } + + /// + /// 文件大小,单位字节 + /// + public long FileSize { get; set; } = 0; + /// /// 是否保存 /// diff --git a/IRaCIS.Core.Domain/Reading/Segment/SegmentationVersion.cs b/IRaCIS.Core.Domain/Reading/Segment/SegmentationVersion.cs new file mode 100644 index 000000000..f196b0f74 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/Segment/SegmentationVersion.cs @@ -0,0 +1,154 @@ +namespace IRaCIS.Core.Domain.Models; + +[Comment("分割文件版本")] +[Table("SegmentationVersion")] +public class SegmentationVersion : BaseAddAuditEntity +{ + #region 导航属性 + + + [JsonIgnore] + [ForeignKey("SegmentationId")] + public Segmentation Segmentation { get; set; } + #endregion + + /// + /// 分割分组Id + /// + public Guid SegmentationId { get; set; } + + /// + /// 版本号,默认为1,每次更新分割分组时版本号加1 + /// + public int Version { get; set; } = 1; + + /// + /// 分组的Json + /// + [MaxLength] + public string SegmentationJson { get; set; } + + /// + /// SEG文件的URL地址 + /// + [MaxLength] + public string SEGUrl { get; set; } = string.Empty; + + /// + /// 文件大小,单位字节 + /// + public long FileSize { get; set; } = 0; + + /// + /// 版本开始时间 + /// + public DateTime? StartTime { get; set; } + + /// + /// SgenmentList + /// + [MaxLength] + public List SegmentList { get; set; } = new List(); + + + +} + +public class SegmentVersionData: ISegment +{ + /// + /// 这个时间很总要要记录 + /// + public DateTime CreateTime { get; set; } + + /// + /// 分割Id + /// + public Guid SegmentationId { get; set; } + + /// + /// 任务Id + /// + public Guid VisitTaskId { get; set; } + + /// + /// 分割的序号 + /// + public int SegmentNumber { get; set; } + + /// + /// 分割的Json + /// + [MaxLength] + public string SegmentJson { get; set; } = string.Empty; + + /// + /// SegmentName + /// + public string SegmentName { get; set; } = string.Empty; + + /// + /// 颜色 + /// + public string ColorRgb { get; set; } = string.Empty; + + /// + /// 均值 + /// + public decimal? AvgValue { get; set; } + + /// + /// 最大值 + /// + public decimal? MaxValue { get; set; } + + /// + /// 最小值 + /// + public decimal? MinValue { get; set; } + + /// + /// 方差 + /// + public decimal? Variance { get; set; } + + /// + /// 中位数 + /// + public decimal? Median { get; set; } + + /// + /// 体积 + /// + public decimal? Volume { get; set; } + + /// + /// 长径 + /// + public decimal? MajorAxis { get; set; } + + /// + /// 短径 + /// + public decimal? ShortAxis { get; set; } + + /// + /// Peak + /// + public decimal? Peak { get; set; } + + /// + /// TLG + /// + public decimal? TLG { get; set; } + + /// + /// MTV + /// + public decimal? MTV { get; set; } + + /// + /// 是否锁定 + /// + public bool IsLock { get; set; } = false; +} diff --git a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteEquipmentSurvey.cs b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteEquipmentSurvey.cs index 9180d2453..c59b2d422 100644 --- a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteEquipmentSurvey.cs +++ b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteEquipmentSurvey.cs @@ -14,12 +14,52 @@ public class TrialSiteEquipmentSurvey : BaseFullAuditEntity #endregion public Guid TrialSiteSurveyId { get; set; } + [Comment("扫描设备-废弃")] public Guid EquipmentTypeId { get; set; } + + [Comment("扫描设备参数")] public string Parameters { get; set; } = string.Empty; + [Comment("扫描设备厂商其他补充")] public string ManufacturerName { get; set; } = string.Empty; + + [Comment("扫描设备型号")] public string ScannerType { get; set; } = string.Empty; public string Note { get; set; } = string.Empty; + + #region 新增 + + [Comment("扫描设备-New")] + public int EquipmentTypeEnum { get; set; } + + public string OtherEquipmentType { get; set; } + + [Comment("扫描设备厂商")] + public int? ManufacturerType { get; set; } + + [Comment("磁场强度 (1.5T / 3.0T)")] + public int? MagneticFieldStrengthType { get; set; } + + [Comment("体部线圈通道数 (≥16 或 <16)")] + public int? BodyCoilChannelCount { get; set; } + + [Comment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)")] + public bool? HasDedicatedPdfFatQuantificationSequence { get; set; } + + [Comment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)")] + public int? PdfFatQuantificationSequenceType { get; set; } + + [Comment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)")] + public string OtherSequenceSpecification { get; set; } + + [Comment("是否包含 T2/R2 校正(用于铁沉积校正)")] + public bool? HasT2R2Correction { get; set; } + + [Comment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据")] + public bool? CanFullyExportPdfParameterMapsAndRawDicom { get; set; } + + #endregion + } diff --git a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteSurvey.cs b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteSurvey.cs index 43cfce7f6..295aeaa17 100644 --- a/IRaCIS.Core.Domain/SiteSurvey/TrialSiteSurvey.cs +++ b/IRaCIS.Core.Domain/SiteSurvey/TrialSiteSurvey.cs @@ -51,5 +51,35 @@ public class TrialSiteSurvey : BaseFullDeleteAuditEntity public DateTime? PreliminaryTime { get; set; } public DateTime? ReviewerTime { get; set; } + + + + + [Comment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目")] + public bool? IsRoutineMRIPDEE { get; set; } + + [Comment("MRI-PDFF 单次检查时长")] + public string MRIPDFFScanTime { get; set; } + + [Comment("MRI-PDFF 预约等待时长")] + public string MRIPDFFLeadTime { get; set; } + + [Comment("MRI-PDEE 其他")] + public string MRIPDFFOther { get; set; } + + + [Comment("是否授权影像科老师参与")] + + public bool? IsAuthorizeRadiologistsParticipate { get; set; } + + [Comment("保持 1-2 名固定技师")] + public bool? AssignFixedTechnologists { get; set; } + + + [Comment("是否严格按照影像手册参数完成刻盘")] + public bool? ISStrictManualBurnFlag { get; set; } + + [Comment("不严格按照影像手册参数完成刻盘原因")] + public string NotStrictManualBurnFlagReason { get; set; } } diff --git a/IRaCIS.Core.Domain/Trial/Trial.cs b/IRaCIS.Core.Domain/Trial/Trial.cs index 41af70637..e03d59768 100644 --- a/IRaCIS.Core.Domain/Trial/Trial.cs +++ b/IRaCIS.Core.Domain/Trial/Trial.cs @@ -306,17 +306,33 @@ public partial class Trial : BaseFullDeleteAuditEntity /// /// IQC自动下一个任务 /// - public bool IsIQCAutoNextTask { get; set; } + public bool IsIQCAutoNextTask { get; set; } = true; - public bool IsIQCAutoTaskDistinguishType { get; set; } + public bool IsIQCAutoTaskDistinguishType { get; set; } = true; /// /// 影像质控风险控制 /// - public bool? IsImageQualityControl { get; set; } + public bool? IsImageQualityControl { get; set; } = true; public TrialDataStore TrialDataStoreType { get; set; } + [Comment("最大的Dicom检查编号 整型")] + public int MaxDicomCode { get; set; } + + [Comment("最大的NoneDicom检查编号 整型")] + public int MaxNoneDicomCode { get; set; } + + /// + /// QC质控下载 + /// + public bool IsSupportQCDownloadImage { get; set; } + + /// + /// 打开失访可读 + /// + public bool IsOpenLostVistRead { get; set; } = true; + } public enum TrialDataStore diff --git a/IRaCIS.Core.Domain/TrialSiteUser/TrialSite.cs b/IRaCIS.Core.Domain/TrialSiteUser/TrialSite.cs index f20b90246..2ea9ec572 100644 --- a/IRaCIS.Core.Domain/TrialSiteUser/TrialSite.cs +++ b/IRaCIS.Core.Domain/TrialSiteUser/TrialSite.cs @@ -1,4 +1,6 @@ -namespace IRaCIS.Core.Domain.Models; +using IRaCIS.Core.Domain.Share; + +namespace IRaCIS.Core.Domain.Models; [Comment("项目 - 项目中心表")] [Table("TrialSite")] @@ -40,4 +42,9 @@ public class TrialSite : BaseFullDeleteAuditEntity public string TrialSiteAliasName { get; set; } = String.Empty; public DateTime? EnabledTime { get; set; } + + /// + /// 使用 StaticData.SiteCountry.CN; + /// + public string Country { get; set; } } \ No newline at end of file diff --git a/IRaCIS.Core.Infra.EFCore/AuthUser/IUserInfo.cs b/IRaCIS.Core.Infra.EFCore/AuthUser/IUserInfo.cs index 2be9983da..7ff1467e5 100644 --- a/IRaCIS.Core.Infra.EFCore/AuthUser/IUserInfo.cs +++ b/IRaCIS.Core.Infra.EFCore/AuthUser/IUserInfo.cs @@ -1,4 +1,6 @@ -namespace IRaCIS.Core.Domain.Share +using IRaCIS.Core.Domain.Models; + +namespace IRaCIS.Core.Domain.Share { /// /// 用户信息接口 @@ -59,5 +61,7 @@ string TimeZoneId { get; } string BrowserFingerprint { get; } + + UserWorkLanguage UserWorkLanguage { get; } } } diff --git a/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs b/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs index f998fe11b..8ccac279e 100644 --- a/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs +++ b/IRaCIS.Core.Infra.EFCore/AuthUser/UserInfo.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Http; +using IRaCIS.Core.Domain.Models; +using Microsoft.AspNetCore.Http; namespace IRaCIS.Core.Domain.Share { @@ -328,6 +329,25 @@ namespace IRaCIS.Core.Domain.Share } } + public UserWorkLanguage UserWorkLanguage + { + get + { + var userWorkLanguage = _accessor?.HttpContext?.User?.FindFirst(JwtIRaCISClaimType.UserWorkLanguage); + + if (userWorkLanguage != null && !string.IsNullOrEmpty(userWorkLanguage.Value)) + { + return Enum.Parse(userWorkLanguage.Value); + } + else + { + return UserWorkLanguage.US; + + } + } + + } + public Guid? SignId { @@ -397,6 +417,7 @@ namespace IRaCIS.Core.Domain.Share public const string PermissionStr = "permissionStr"; + public const string UserWorkLanguage = "userWorkLanguage"; } diff --git a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs index aa0d84619..98329393d 100644 --- a/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs +++ b/IRaCIS.Core.Infra.EFCore/Common/AuditingData.cs @@ -2465,6 +2465,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common var extraIdentification = string.Empty; var entity = item.Entity as DicomStudy; + + var reason = entity.ModifyReason; switch (_userInfo.RequestUrl) { case "QCOperation/updateModality": @@ -2473,6 +2475,10 @@ namespace IRaCIS.Core.Infra.EFCore.Common extraIdentification = "/2"; } + break; + case "Study/amendmentPatientInfo": + reason=entity.Reason; + break; } @@ -2480,7 +2486,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common { ObjectRelationParentId = x.SubjectVisitId, ExtraIndentification = extraIdentification, - Reason = entity.ModifyReason + Reason = reason }); } @@ -3625,8 +3631,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common var entity = item.Entity as Segmentation; + var visitTask = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).FirstOrDefaultAsync(); + await InsertInspection(entity, type, x => new InspectionConvertDTO() { + TrialReadingCriterionId = visitTask != null ? visitTask.TrialReadingCriterionId : null, }); } @@ -3639,9 +3648,16 @@ namespace IRaCIS.Core.Infra.EFCore.Common var entity = item.Entity as Segment; + var visitTask = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).FirstOrDefaultAsync(); + + + var segmentation = await _dbContext.Segmentation.Where(x => x.Id == entity.SegmentationId).FirstOrDefaultAsync(); await InsertInspection(entity, type, x => new InspectionConvertDTO() { + SubjectId= segmentation != null ? segmentation.SubjectId : null, + SubjectVisitId = segmentation != null ? segmentation.SubjectVisitId : null, + TrialReadingCriterionId = visitTask != null ? visitTask.TrialReadingCriterionId : null, }); } @@ -3692,10 +3708,12 @@ namespace IRaCIS.Core.Infra.EFCore.Common var questionAnswer= entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(x => x.Entity as ReadingTaskQuestionAnswer) .Where(x => x.VisitTaskId == entity.VisitTaskId && x.ReadingQuestionTrialId == entity.QuestionId).FirstOrDefault(); - var quesionInfo = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == questionAnswer.ReadingQuestionTrialId).Select(t => + if (questionAnswer != null) + { + var quesionInfo = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == questionAnswer.ReadingQuestionTrialId).Select(t => new { - + t.Unit, t.CustomUnit, t.DictionaryCode, @@ -3707,7 +3725,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common }) .OrderBy(t => t.ShowOrder).FirstOrDefaultAsync(); - answer = Translationunit(quesionInfo.AnswerType, quesionInfo.Unit, quesionInfo.CustomUnit, unitDataList, questionAnswer.Answer); + answer = Translationunit(quesionInfo.AnswerType, quesionInfo.Unit, quesionInfo.CustomUnit, unitDataList, questionAnswer.Answer); + } } var rowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(x => x.Id == entity.RowId).Select(x => x.RowMark).FirstOrDefaultAsync(); @@ -3715,7 +3734,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common - var segmentation = await _dbContext.Segmentation.Where(x => x.Id == entity.SegmentationId).FirstOrDefaultAsync()?? new Segmentation() { }; + var segmentation = await _dbContext.Segmentation.Where(x => x.Id == entity.SegmentationId).Include(x=>x.VisitTask).FirstOrDefaultAsync()?? new Segmentation() { }; var segment= await _dbContext.Segment.Where(x => x.Id == entity.SegmentId).FirstOrDefaultAsync()?? new Segment() { }; @@ -3723,12 +3742,17 @@ namespace IRaCIS.Core.Infra.EFCore.Common var questionName = await _dbContext.ReadingQuestionTrial.Where(x => x.Id == entity.QuestionId).Select(x => _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName).FirstOrDefaultAsync(); - + Guid? trialReadingCriterionId = null; + if (segmentation.VisitTask != null) + { + trialReadingCriterionId= segmentation.VisitTask.TrialReadingCriterionId; + } await InsertInspection(entity, type, x => new InspectionConvertDTO() { + TrialReadingCriterionId= trialReadingCriterionId, },new { segmentation.SegmentationName, diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 2bc5b9878..8d3313044 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -111,6 +111,14 @@ public class IRaCISDBContext : DbContext ); }); + modelBuilder.Entity(entity => + { + entity.Property(e => e.SegmentList).HasConversion( + v => v == null ? null : JsonConvert.SerializeObject(v), + v => string.IsNullOrEmpty(v) ? new List() {} : JsonConvert.DeserializeObject>(v) + ); + }); + #region pgsql codefirst 配置 暂时屏蔽 //if (base.Database.IsNpgsql()) //{ @@ -371,6 +379,8 @@ public class IRaCISDBContext : DbContext public virtual DbSet ReadingUserConfig { get; set; } public virtual DbSet Segmentation { get; set; } + public virtual DbSet SegmentationVersion { get; set; } + public virtual DbSet Segment { get; set; } public virtual DbSet SegmentBinding { get; set; } diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260506053458_SegmentationVersion.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260506053458_SegmentationVersion.Designer.cs new file mode 100644 index 000000000..6624daeae --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260506053458_SegmentationVersion.Designer.cs @@ -0,0 +1,22209 @@ +// +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("20260506053458_SegmentationVersion")] + partial class SegmentationVersion + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260506053458_SegmentationVersion.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260506053458_SegmentationVersion.cs new file mode 100644 index 000000000..a300c973c --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260506053458_SegmentationVersion.cs @@ -0,0 +1,72 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class SegmentationVersion : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "FileSize", + table: "Segmentation", + type: "bigint", + nullable: false, + defaultValue: 0L); + + migrationBuilder.CreateTable( + name: "SegmentationVersion", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false), + SegmentationId = table.Column(type: "uniqueidentifier", nullable: false), + Version = table.Column(type: "int", nullable: false), + SegmentationJson = table.Column(type: "nvarchar(max)", nullable: false), + SEGUrl = table.Column(type: "nvarchar(max)", nullable: false), + FileSize = table.Column(type: "bigint", nullable: false), + CreateUserId = table.Column(type: "uniqueidentifier", nullable: false), + CreateTime = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_SegmentationVersion", x => x.Id) + .Annotation("SqlServer:Clustered", false); + + }, + comment: "分割文件版本"); + + migrationBuilder.CreateIndex( + name: "IX_SegmentationVersion_CreateTime", + table: "SegmentationVersion", + column: "CreateTime") + .Annotation("SqlServer:Clustered", true); + + migrationBuilder.AddForeignKey( + name: "FK_Segmentation_VisitTask_VisitTaskId", + table: "Segmentation", + column: "VisitTaskId", + principalTable: "VisitTask", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Segmentation_VisitTask_VisitTaskId", + table: "Segmentation"); + + migrationBuilder.DropTable( + name: "SegmentationVersion"); + + migrationBuilder.DropColumn( + name: "FileSize", + table: "Segmentation"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260506055909_AddTrialMaxCode.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260506055909_AddTrialMaxCode.Designer.cs new file mode 100644 index 000000000..6ab16c0d5 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260506055909_AddTrialMaxCode.Designer.cs @@ -0,0 +1,22153 @@ +// +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("20260506055909_AddTrialMaxCode")] + partial class AddTrialMaxCode + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260506055909_AddTrialMaxCode.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260506055909_AddTrialMaxCode.cs new file mode 100644 index 000000000..1abf7851f --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260506055909_AddTrialMaxCode.cs @@ -0,0 +1,54 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class AddTrialMaxCode : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "MaxDicomCode", + table: "Trial", + type: "int", + nullable: false, + defaultValue: 0, + comment: "最大的Dicom检查编号 整型"); + + migrationBuilder.AddColumn( + name: "MaxNoneDicomCode", + table: "Trial", + type: "int", + nullable: false, + defaultValue: 0, + comment: "最大的NoneDicom检查编号 整型"); + + //migrationBuilder.AddForeignKey( + // name: "FK_Segmentation_VisitTask_VisitTaskId", + // table: "Segmentation", + // column: "VisitTaskId", + // principalTable: "VisitTask", + // principalColumn: "Id", + // onDelete: ReferentialAction.Cascade); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_Segmentation_VisitTask_VisitTaskId", + table: "Segmentation"); + + migrationBuilder.DropColumn( + name: "MaxDicomCode", + table: "Trial"); + + migrationBuilder.DropColumn( + name: "MaxNoneDicomCode", + table: "Trial"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260507063845_segmentList.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260507063845_segmentList.Designer.cs new file mode 100644 index 000000000..128542450 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260507063845_segmentList.Designer.cs @@ -0,0 +1,22221 @@ +// +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("20260507063845_segmentList")] + partial class segmentList + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260507063845_segmentList.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260507063845_segmentList.cs new file mode 100644 index 000000000..abf3d9df2 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260507063845_segmentList.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class segmentList : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "SegmentList", + table: "SegmentationVersion", + type: "nvarchar(max)", + nullable: false, + defaultValue: ""); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "SegmentList", + table: "SegmentationVersion"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260511073220_maxVersionStartTime.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260511073220_maxVersionStartTime.Designer.cs new file mode 100644 index 000000000..8c39ed9fc --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260511073220_maxVersionStartTime.Designer.cs @@ -0,0 +1,22224 @@ +// +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("20260511073220_maxVersionStartTime")] + partial class maxVersionStartTime + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260511073220_maxVersionStartTime.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260511073220_maxVersionStartTime.cs new file mode 100644 index 000000000..71847cb41 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260511073220_maxVersionStartTime.cs @@ -0,0 +1,29 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class maxVersionStartTime : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "StartTime", + table: "SegmentationVersion", + type: "datetime2", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "StartTime", + table: "SegmentationVersion"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260512034342_addWorkLanguage.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260512034342_addWorkLanguage.Designer.cs new file mode 100644 index 000000000..08d66c3ec --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260512034342_addWorkLanguage.Designer.cs @@ -0,0 +1,22232 @@ +// +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("20260512034342_addWorkLanguage")] + partial class addWorkLanguage + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260512034342_addWorkLanguage.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260512034342_addWorkLanguage.cs new file mode 100644 index 000000000..cb6eaa5d4 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260512034342_addWorkLanguage.cs @@ -0,0 +1,52 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class addWorkLanguage : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Country", + table: "TrialSite", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "DocLanguageType", + table: "SystemDocument", + type: "int", + nullable: false, + defaultValue: 0); + + migrationBuilder.AddColumn( + name: "UserWorkLanguage", + table: "IdentityUser", + type: "int", + nullable: false, + defaultValue: 0); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Country", + table: "TrialSite"); + + migrationBuilder.DropColumn( + name: "DocLanguageType", + table: "SystemDocument"); + + migrationBuilder.DropColumn( + name: "UserWorkLanguage", + table: "IdentityUser"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260512071158_SEGUpdateTime.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260512071158_SEGUpdateTime.Designer.cs new file mode 100644 index 000000000..e56dc8bbd --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260512071158_SEGUpdateTime.Designer.cs @@ -0,0 +1,22238 @@ +// +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("20260512071158_SEGUpdateTime")] + partial class SEGUpdateTime + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260512071158_SEGUpdateTime.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260512071158_SEGUpdateTime.cs new file mode 100644 index 000000000..04a9d5218 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260512071158_SEGUpdateTime.cs @@ -0,0 +1,29 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class SEGUpdateTime : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "SEGUpdateTime", + table: "Segmentation", + type: "datetime2", + nullable: true); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "SEGUpdateTime", + table: "Segmentation"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260520060641_SiteSurveyEquipmentModify.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260520060641_SiteSurveyEquipmentModify.Designer.cs new file mode 100644 index 000000000..4c184124e --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260520060641_SiteSurveyEquipmentModify.Designer.cs @@ -0,0 +1,22285 @@ +// +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("20260520060641_SiteSurveyEquipmentModify")] + partial class SiteSurveyEquipmentModify + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyCoilChannelCount") + .HasColumnType("int") + .HasComment("体部线圈通道数 (≥16 或 <16)"); + + b.Property("CanFullyExportPdfParameterMapsAndRawDicom") + .HasColumnType("bit") + .HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeEnum") + .HasColumnType("int") + .HasComment("扫描设备-New"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("扫描设备-废弃"); + + b.Property("HasDedicatedPdfFatQuantificationSequence") + .HasColumnType("bit") + .HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + b.Property("HasT2R2Correction") + .HasColumnType("bit") + .HasComment("是否包含 T2/R2 校正(用于铁沉积校正)"); + + b.Property("MagneticFieldStrengthType") + .HasColumnType("int") + .HasComment("磁场强度 (1.5T / 3.0T)"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备厂商其他补充"); + + b.Property("ManufacturerType") + .HasColumnType("int") + .HasComment("扫描设备厂商"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherEquipmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherSequenceSpecification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备参数"); + + b.Property("PdfFatQuantificationSequenceType") + .HasColumnType("int") + .HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备型号"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260520060641_SiteSurveyEquipmentModify.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260520060641_SiteSurveyEquipmentModify.cs new file mode 100644 index 000000000..122395f97 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260520060641_SiteSurveyEquipmentModify.cs @@ -0,0 +1,223 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class SiteSurveyEquipmentModify : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "ScannerType", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + comment: "扫描设备型号", + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400); + + migrationBuilder.AlterColumn( + name: "Parameters", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + comment: "扫描设备参数", + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400); + + migrationBuilder.AlterColumn( + name: "ManufacturerName", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + comment: "扫描设备厂商其他补充", + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400); + + migrationBuilder.AlterColumn( + name: "EquipmentTypeId", + table: "TrialSiteEquipmentSurvey", + type: "uniqueidentifier", + nullable: false, + comment: "扫描设备-废弃", + oldClrType: typeof(Guid), + oldType: "uniqueidentifier"); + + migrationBuilder.AddColumn( + name: "BodyCoilChannelCount", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "体部线圈通道数 (≥16 或 <16)"); + + migrationBuilder.AddColumn( + name: "CanFullyExportPdfParameterMapsAndRawDicom", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: false, + defaultValue: false, + comment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + migrationBuilder.AddColumn( + name: "EquipmentTypeEnum", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "扫描设备-New"); + + migrationBuilder.AddColumn( + name: "HasDedicatedPdfFatQuantificationSequence", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: false, + defaultValue: false, + comment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + migrationBuilder.AddColumn( + name: "HasT2R2Correction", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: false, + defaultValue: false, + comment: "是否包含 T2/R2 校正(用于铁沉积校正)"); + + migrationBuilder.AddColumn( + name: "MagneticFieldStrengthType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "磁场强度 (1.5T / 3.0T)"); + + migrationBuilder.AddColumn( + name: "ManufacturerType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "扫描设备厂商"); + + migrationBuilder.AddColumn( + name: "OtherEquipmentType", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: ""); + + migrationBuilder.AddColumn( + name: "OtherSequenceSpecification", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: "", + comment: "其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + migrationBuilder.AddColumn( + name: "PdfFatQuantificationSequenceType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: true, + comment: "专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "BodyCoilChannelCount", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "CanFullyExportPdfParameterMapsAndRawDicom", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "EquipmentTypeEnum", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "HasDedicatedPdfFatQuantificationSequence", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "HasT2R2Correction", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "MagneticFieldStrengthType", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "ManufacturerType", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "OtherEquipmentType", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "OtherSequenceSpecification", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.DropColumn( + name: "PdfFatQuantificationSequenceType", + table: "TrialSiteEquipmentSurvey"); + + migrationBuilder.AlterColumn( + name: "ScannerType", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400, + oldComment: "扫描设备型号"); + + migrationBuilder.AlterColumn( + name: "Parameters", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400, + oldComment: "扫描设备参数"); + + migrationBuilder.AlterColumn( + name: "ManufacturerName", + table: "TrialSiteEquipmentSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400, + oldComment: "扫描设备厂商其他补充"); + + migrationBuilder.AlterColumn( + name: "EquipmentTypeId", + table: "TrialSiteEquipmentSurvey", + type: "uniqueidentifier", + nullable: false, + oldClrType: typeof(Guid), + oldType: "uniqueidentifier", + oldComment: "扫描设备-废弃"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260521033216_modifyTrialJson.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260521033216_modifyTrialJson.Designer.cs new file mode 100644 index 000000000..780186928 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260521033216_modifyTrialJson.Designer.cs @@ -0,0 +1,22291 @@ +// +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("20260521033216_modifyTrialJson")] + partial class modifyTrialJson + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsOpenLostVistRead") + .HasColumnType("bit"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsSupportQCDownloadImage") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyCoilChannelCount") + .HasColumnType("int") + .HasComment("体部线圈通道数 (≥16 或 <16)"); + + b.Property("CanFullyExportPdfParameterMapsAndRawDicom") + .HasColumnType("bit") + .HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeEnum") + .HasColumnType("int") + .HasComment("扫描设备-New"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("扫描设备-废弃"); + + b.Property("HasDedicatedPdfFatQuantificationSequence") + .HasColumnType("bit") + .HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + b.Property("HasT2R2Correction") + .HasColumnType("bit") + .HasComment("是否包含 T2/R2 校正(用于铁沉积校正)"); + + b.Property("MagneticFieldStrengthType") + .HasColumnType("int") + .HasComment("磁场强度 (1.5T / 3.0T)"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备厂商其他补充"); + + b.Property("ManufacturerType") + .HasColumnType("int") + .HasComment("扫描设备厂商"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherEquipmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherSequenceSpecification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备参数"); + + b.Property("PdfFatQuantificationSequenceType") + .HasColumnType("int") + .HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备型号"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260521033216_modifyTrialJson.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260521033216_modifyTrialJson.cs new file mode 100644 index 000000000..5bea6208e --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260521033216_modifyTrialJson.cs @@ -0,0 +1,40 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class modifyTrialJson : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "IsOpenLostVistRead", + table: "Trial", + type: "bit", + nullable: false, + defaultValue: true); + + migrationBuilder.AddColumn( + name: "IsSupportQCDownloadImage", + table: "Trial", + type: "bit", + nullable: false, + defaultValue: false); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "IsOpenLostVistRead", + table: "Trial"); + + migrationBuilder.DropColumn( + name: "IsSupportQCDownloadImage", + table: "Trial"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260521061048_modifySurvey.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260521061048_modifySurvey.Designer.cs new file mode 100644 index 000000000..fed2140a5 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260521061048_modifySurvey.Designer.cs @@ -0,0 +1,22291 @@ +// +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("20260521061048_modifySurvey")] + partial class modifySurvey + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsOpenLostVistRead") + .HasColumnType("bit"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsSupportQCDownloadImage") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyCoilChannelCount") + .HasColumnType("int") + .HasComment("体部线圈通道数 (≥16 或 <16)"); + + b.Property("CanFullyExportPdfParameterMapsAndRawDicom") + .HasColumnType("bit") + .HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeEnum") + .HasColumnType("int") + .HasComment("扫描设备-New"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("扫描设备-废弃"); + + b.Property("HasDedicatedPdfFatQuantificationSequence") + .HasColumnType("bit") + .HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + b.Property("HasT2R2Correction") + .HasColumnType("bit") + .HasComment("是否包含 T2/R2 校正(用于铁沉积校正)"); + + b.Property("MagneticFieldStrengthType") + .HasColumnType("int") + .HasComment("磁场强度 (1.5T / 3.0T)"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备厂商其他补充"); + + b.Property("ManufacturerType") + .HasColumnType("int") + .HasComment("扫描设备厂商"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherEquipmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherSequenceSpecification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备参数"); + + b.Property("PdfFatQuantificationSequenceType") + .HasColumnType("int") + .HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备型号"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260521061048_modifySurvey.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260521061048_modifySurvey.cs new file mode 100644 index 000000000..a080d4df4 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260521061048_modifySurvey.cs @@ -0,0 +1,150 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class modifySurvey : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "ManufacturerType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: true, + comment: "扫描设备厂商", + oldClrType: typeof(int), + oldType: "int", + oldComment: "扫描设备厂商"); + + migrationBuilder.AlterColumn( + name: "MagneticFieldStrengthType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: true, + comment: "磁场强度 (1.5T / 3.0T)", + oldClrType: typeof(int), + oldType: "int", + oldComment: "磁场强度 (1.5T / 3.0T)"); + + migrationBuilder.AlterColumn( + name: "HasT2R2Correction", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: true, + comment: "是否包含 T2/R2 校正(用于铁沉积校正)", + oldClrType: typeof(bool), + oldType: "bit", + oldComment: "是否包含 T2/R2 校正(用于铁沉积校正)"); + + migrationBuilder.AlterColumn( + name: "HasDedicatedPdfFatQuantificationSequence", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: true, + comment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)", + oldClrType: typeof(bool), + oldType: "bit", + oldComment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + migrationBuilder.AlterColumn( + name: "CanFullyExportPdfParameterMapsAndRawDicom", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: true, + comment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据", + oldClrType: typeof(bool), + oldType: "bit", + oldComment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + migrationBuilder.AlterColumn( + name: "BodyCoilChannelCount", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: true, + comment: "体部线圈通道数 (≥16 或 <16)", + oldClrType: typeof(int), + oldType: "int", + oldComment: "体部线圈通道数 (≥16 或 <16)"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "ManufacturerType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "扫描设备厂商", + oldClrType: typeof(int), + oldType: "int", + oldNullable: true, + oldComment: "扫描设备厂商"); + + migrationBuilder.AlterColumn( + name: "MagneticFieldStrengthType", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "磁场强度 (1.5T / 3.0T)", + oldClrType: typeof(int), + oldType: "int", + oldNullable: true, + oldComment: "磁场强度 (1.5T / 3.0T)"); + + migrationBuilder.AlterColumn( + name: "HasT2R2Correction", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: false, + defaultValue: false, + comment: "是否包含 T2/R2 校正(用于铁沉积校正)", + oldClrType: typeof(bool), + oldType: "bit", + oldNullable: true, + oldComment: "是否包含 T2/R2 校正(用于铁沉积校正)"); + + migrationBuilder.AlterColumn( + name: "HasDedicatedPdfFatQuantificationSequence", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: false, + defaultValue: false, + comment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)", + oldClrType: typeof(bool), + oldType: "bit", + oldNullable: true, + oldComment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + migrationBuilder.AlterColumn( + name: "CanFullyExportPdfParameterMapsAndRawDicom", + table: "TrialSiteEquipmentSurvey", + type: "bit", + nullable: false, + defaultValue: false, + comment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据", + oldClrType: typeof(bool), + oldType: "bit", + oldNullable: true, + oldComment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + migrationBuilder.AlterColumn( + name: "BodyCoilChannelCount", + table: "TrialSiteEquipmentSurvey", + type: "int", + nullable: false, + defaultValue: 0, + comment: "体部线圈通道数 (≥16 或 <16)", + oldClrType: typeof(int), + oldType: "int", + oldNullable: true, + oldComment: "体部线圈通道数 (≥16 或 <16)"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260528052006_siteSurveyOther.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260528052006_siteSurveyOther.Designer.cs new file mode 100644 index 000000000..bb3333f9c --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260528052006_siteSurveyOther.Designer.cs @@ -0,0 +1,22329 @@ +// +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("20260528052006_siteSurveyOther")] + partial class siteSurveyOther + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsOpenLostVistRead") + .HasColumnType("bit"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsSupportQCDownloadImage") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyCoilChannelCount") + .HasColumnType("int") + .HasComment("体部线圈通道数 (≥16 或 <16)"); + + b.Property("CanFullyExportPdfParameterMapsAndRawDicom") + .HasColumnType("bit") + .HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeEnum") + .HasColumnType("int") + .HasComment("扫描设备-New"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("扫描设备-废弃"); + + b.Property("HasDedicatedPdfFatQuantificationSequence") + .HasColumnType("bit") + .HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + b.Property("HasT2R2Correction") + .HasColumnType("bit") + .HasComment("是否包含 T2/R2 校正(用于铁沉积校正)"); + + b.Property("MagneticFieldStrengthType") + .HasColumnType("int") + .HasComment("磁场强度 (1.5T / 3.0T)"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备厂商其他补充"); + + b.Property("ManufacturerType") + .HasColumnType("int") + .HasComment("扫描设备厂商"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherEquipmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherSequenceSpecification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备参数"); + + b.Property("PdfFatQuantificationSequenceType") + .HasColumnType("int") + .HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备型号"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AssignFixedTechnologists") + .HasColumnType("bit") + .HasComment("保持 1-2 名固定技师"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ISStrictManualBurnFlag") + .HasColumnType("bit") + .HasComment("是否严格按照影像手册参数完成刻盘"); + + b.Property("IsAuthorizeRadiologistsParticipate") + .HasColumnType("bit") + .HasComment("是否授权影像科老师参与"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("IsRoutineMRIPDEE") + .HasColumnType("bit") + .HasComment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MRIPDFFLeadTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDFF 预约等待时长"); + + b.Property("MRIPDFFOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDEE 其他"); + + b.Property("MRIPDFFScanTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDFF 单次检查时长"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotStrictManualBurnFlagReason") + .HasColumnType("bit") + .HasComment("不严格按照影像手册参数完成刻盘原因"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260528052006_siteSurveyOther.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260528052006_siteSurveyOther.cs new file mode 100644 index 000000000..da27f320c --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260528052006_siteSurveyOther.cs @@ -0,0 +1,112 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class siteSurveyOther : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "AssignFixedTechnologists", + table: "TrialSiteSurvey", + type: "bit", + nullable: true, + comment: "保持 1-2 名固定技师"); + + migrationBuilder.AddColumn( + name: "ISStrictManualBurnFlag", + table: "TrialSiteSurvey", + type: "bit", + nullable: true, + comment: "是否严格按照影像手册参数完成刻盘"); + + migrationBuilder.AddColumn( + name: "IsAuthorizeRadiologistsParticipate", + table: "TrialSiteSurvey", + type: "bit", + nullable: true, + comment: "是否授权影像科老师参与"); + + migrationBuilder.AddColumn( + name: "IsRoutineMRIPDEE", + table: "TrialSiteSurvey", + type: "bit", + nullable: true, + comment: "MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目"); + + migrationBuilder.AddColumn( + name: "MRIPDFFLeadTime", + table: "TrialSiteSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: "", + comment: "MRI-PDFF 预约等待时长"); + + migrationBuilder.AddColumn( + name: "MRIPDFFOther", + table: "TrialSiteSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: "", + comment: "MRI-PDEE 其他"); + + migrationBuilder.AddColumn( + name: "MRIPDFFScanTime", + table: "TrialSiteSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: "", + comment: "MRI-PDFF 单次检查时长"); + + migrationBuilder.AddColumn( + name: "NotStrictManualBurnFlagReason", + table: "TrialSiteSurvey", + type: "bit", + nullable: true, + comment: "不严格按照影像手册参数完成刻盘原因"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "AssignFixedTechnologists", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "ISStrictManualBurnFlag", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "IsAuthorizeRadiologistsParticipate", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "IsRoutineMRIPDEE", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "MRIPDFFLeadTime", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "MRIPDFFOther", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "MRIPDFFScanTime", + table: "TrialSiteSurvey"); + + migrationBuilder.DropColumn( + name: "NotStrictManualBurnFlagReason", + table: "TrialSiteSurvey"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260528084709_siteSurveyOther1.Designer.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260528084709_siteSurveyOther1.Designer.cs new file mode 100644 index 000000000..0965cd509 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260528084709_siteSurveyOther1.Designer.cs @@ -0,0 +1,22331 @@ +// +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("20260528084709_siteSurveyOther1")] + partial class siteSurveyOther1 + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.19") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("编码"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpiryDate") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit"); + + b.Property("IsOfficial") + .HasColumnType("bit") + .HasComment("是否正式简历"); + + b.Property("Language") + .HasColumnType("int") + .HasComment("1 中文 2为英文"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Attachment", t => + { + t.HasComment("医生 - 简历|证书 文档表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentTypeEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsAuthorization") + .HasColumnType("bit"); + + b.Property("MainFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditDocument", t => + { + t.HasComment("稽查文档管理"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AncestorId") + .HasColumnType("uniqueidentifier") + .HasComment("祖先"); + + b.Property("Depth") + .HasColumnType("int"); + + b.Property("DescendantId") + .HasColumnType("uniqueidentifier") + .HasComment("后代"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("AuditDocumentClosure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("稽查状态"); + + b.Property("AuditTime") + .HasColumnType("date") + .HasComment("稽查日期"); + + b.Property("AuditType") + .HasColumnType("int") + .HasComment("稽查形式"); + + b.Property("BeginTime") + .HasColumnType("datetime2"); + + b.Property("CompanyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("IsViewTrainingRecord") + .HasColumnType("bit"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("AuditRecordPermission"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CROCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CROName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CRONameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit") + .HasComment("是否是项目级别"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CROCompany", t => + { + t.HasComment("机构 - CRO"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRCNeedReply") + .HasColumnType("bit") + .HasComment("CRC是否需要回复 前端使用"); + + b.Property("ParamInfo") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("核查的检查信息Json"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UserTypeEnum") + .HasColumnType("int") + .HasComment("核查过程中的操作用户类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CheckChallengeDialog", t => + { + t.HasComment("一致性核查 - 对话记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowIndex") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalAnswerRowInfo", t => + { + t.HasComment("受试者 - 临床表单表格问题行记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetEnum") + .HasColumnType("int") + .HasComment("枚举(字典里面取的)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataSystemSet", t => + { + t.HasComment("系统 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("ClinicalDataSetEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalDataSetName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ClinicalUploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionEnumListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("EnFileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EnPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsApply") + .HasColumnType("bit") + .HasComment("是否应用"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadRole") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalDataTrialSet", t => + { + t.HasComment("项目 - 临床数据适应标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckDate") + .HasColumnType("datetime2") + .HasComment("检查日期"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalForm", t => + { + t.HasComment("受试者 - 临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalQuestionAnswer", t => + { + t.HasComment("受试者 - 临床表单问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题Id"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier") + .HasComment("答案行的Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ClinicalTableAnswer", t => + { + t.HasComment("受试者 - 临床表单表格问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("系统标准枚举"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeEnum") + .HasColumnType("int") + .HasComment("类型-上传|导出|邮件附件"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CommonDocument", t => + { + t.HasComment("数据上传 | 数据导出 | 邮件附件 文件记录表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionKeyFileRead", t => + { + t.HasComment("标准阅读关键点"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusSystem", t => + { + t.HasComment("系统标准 - 病灶器官表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("LesionType") + .HasColumnType("int"); + + b.Property("OrganType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("CriterionNidusTrial", t => + { + t.HasComment("项目标准 - 病灶器官表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchId") + .HasColumnType("uniqueidentifier") + .HasComment("批次Id"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("子类"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("创建人姓名"); + + b.Property("CreateUserRealName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片医生"); + + b.Property("EntityName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("被稽查实体名"); + + b.Property("GeneralId") + .HasColumnType("uniqueidentifier") + .HasComment("要稽查对象Id"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("IsFrontAdd") + .HasColumnType("bit") + .HasComment("是否是前端添加"); + + b.Property("IsSign") + .HasColumnType("bit"); + + b.Property("JsonDetail") + .HasColumnType("nvarchar(max)"); + + b.Property("LastJsonDetail") + .HasColumnType("nvarchar(max)") + .HasComment("上一条json"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId") + .HasColumnType("uniqueidentifier") + .HasComment("被稽查对象外键1"); + + b.Property("ObjectRelationParentId2") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectRelationParentId3") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父ID"); + + b.Property("RealUrlAndEntity") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RoleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("角色名称"); + + b.Property("SignId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DataInspection", t => + { + t.HasComment("稽查 - 记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("IsMasked") + .HasColumnType("bit") + .HasComment("是否已经影像遮盖"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomInstance", t => + { + t.HasComment("归档 - Instance表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomSeries", t => + { + t.HasComment("归档 - 序列表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDoubleReview") + .HasColumnType("bit"); + + b.Property("IsFromPACS") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier") + .HasComment("序列Id 避免内存移动"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("DicomTag.StudyID"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadedTime") + .HasColumnType("datetime2") + .HasComment("上传时间"); + + b.Property("Uploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ChildGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataTypeEnum") + .HasColumnType("int") + .HasComment("字典类型- 枚举|bool|下拉框"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("是否字典类型配置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Dictionary", t => + { + t.HasComment("后台 - 字典表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcceptingNewTrial") + .HasColumnType("bit"); + + b.Property("ActivelyReading") + .HasColumnType("bit"); + + b.Property("AdminComment") + .HasColumnType("nvarchar(max)"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("AuditUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("BankName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("BankNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankPhoneNum") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindPublications") + .HasColumnType("nvarchar(max)"); + + b.Property("ChineseName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CooperateStatus") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DepartmentOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("GCP") + .HasColumnType("int"); + + b.Property("GCPAgencies") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GCPId") + .HasColumnType("uniqueidentifier"); + + b.Property("GCPTime") + .HasColumnType("datetime2"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Introduction") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("IsVirtual") + .HasColumnType("bit"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Nation") + .HasColumnType("int"); + + b.Property("OpeningBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherClinicalExperience") + .HasColumnType("nvarchar(max)"); + + b.Property("OtherClinicalExperienceCN") + .HasColumnType("nvarchar(max)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotoPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Physician") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhysicianId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionId") + .HasColumnType("uniqueidentifier"); + + b.Property("PositionOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("RankOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingTypeOtherCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResumePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ResumeStatus") + .HasColumnType("int"); + + b.Property("ReviewStatus") + .HasColumnType("int"); + + b.Property("ReviewerCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("SpecialityId") + .HasColumnType("uniqueidentifier"); + + b.Property("SpecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SpecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOther") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SubspecialityOtherCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WeChat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WorkPartTime") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("WorkPartTimeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Doctor", t => + { + t.HasComment("医生 - 基础信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileType") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsIRUpload") + .HasColumnType("bit") + .HasComment("是否是IR上传"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorCriterionFile", t => + { + t.HasComment("医生 - 项目标准签名文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("DoctorDictionary", t => + { + t.HasComment("医生 - 医生字典关联表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsMain") + .HasColumnType("bit"); + + b.Property("Summarize") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SummarizeEn") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorSummarize", t => + { + t.HasComment("医生 - 概述"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Degree") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DegreeCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Organization") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Education", t => + { + t.HasComment("医生 - 教育信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachmentPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailAttachmentLog", t => + { + t.HasComment("邮件附件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Content") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailDate") + .HasColumnType("datetime2"); + + b.Property("EmailStateEnum") + .HasColumnType("int"); + + b.Property("EmailSubject") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ErrorInfo") + .IsRequired() + .HasMaxLength(5000) + .HasColumnType("nvarchar(max)"); + + b.Property("MessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SenderName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniqueId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailLog", t => + { + t.HasComment("邮件日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int") + .HasComment("业务级别"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int") + .HasComment("业务模块"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int") + .HasComment("业务场景"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送周期"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int") + .HasComment("加急枚举"); + + b.Property("IsAutoSend") + .HasColumnType("bit") + .HasComment("是否自动发送"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit") + .HasComment("是否区分标准"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit") + .HasComment("是否需要回执"); + + b.Property("SystemLevel") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailNoticeConfig", t => + { + t.HasComment("后台 - 邮件配置表表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("EmailNoticeUserType", t => + { + t.HasComment("后台 - 邮件配置用户类型表(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MainMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReMailMessageId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailReSendLog", t => + { + t.HasComment("邮件重发日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailLogId") + .HasColumnType("uniqueidentifier"); + + b.Property("RecipientAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecipientTypeEnum") + .HasColumnType("int"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EmailRecipientLog", t => + { + t.HasComment("邮件收件人"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("Adjudication24H") + .HasColumnType("int"); + + b.Property("Adjudication48H") + .HasColumnType("int"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AttachmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier") + .HasComment("生成账号 加入到项目中后 赋值"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("EnrollTime") + .HasColumnType("datetime2"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollTime") + .HasColumnType("datetime2"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("ReviewerReadingType") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("Timepoint24H") + .HasColumnType("int"); + + b.Property("Timepoint48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Enroll", t => + { + t.HasComment("医生 - 入组项目中间记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollStatus") + .HasColumnType("int"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialDetailId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollDetail", t => + { + t.HasComment("医生 - 入组项目流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingCategory") + .HasColumnType("int"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCategory", t => + { + t.HasComment("医生 - 项目阅片标准阅片类型配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinAnalysis") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EnrollReadingCriterion", t => + { + t.HasComment("医生 - 项目阅片标准参与一致性分析配置表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EventData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("EventState") + .HasColumnType("int"); + + b.Property("EventType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("完整的事件类型名"); + + b.Property("EventTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("简单的事件类型名"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("EventStoreRecord", t => + { + t.HasComment("记录触发的事件,以及状态,从而方便重试操作"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Rate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExchangeRate", t => + { + t.HasComment("医生计费 - 汇率"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DownloadUrl") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ExploreType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ExploreRecommend", t => + { + t.HasComment("后台 - 浏览器推荐 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BatchDataType") + .HasColumnType("int") + .HasComment("该批次数据类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileMarkId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件标识ID"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsNeedSync") + .HasColumnType("bit") + .HasComment("是否需要同步"); + + b.Property("IsSync") + .HasColumnType("bit") + .HasComment("是否已同步-最后一个任务的状态"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Priority") + .HasColumnType("int") + .HasComment("同步优先级"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SyncFinishedTime") + .HasColumnType("datetime2") + .HasComment("同步结束时间-最后一个任务的时间"); + + b.Property("TargetRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("目标区域"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadBatchId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传批次"); + + b.Property("UploadRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("上传区域"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FileUploadRecord", t => + { + t.HasComment("整个系统,上传记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyCriterionList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ChildDataEnLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChildDataLabel") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端渲染数组 数组名 和数组值"); + + b.Property("ChildDataValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("子数据Value"); + + b.Property("ChildrenTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字段名 这里有可能是一个数组名 那么具体的翻译字段名就不是这个了"); + + b.Property("CodeEn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ConfigType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端使用 C M"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("前端展示类型 Router, Array,Table"); + + b.Property("DateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("日期格式"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("翻译的字典名(单个字段翻译的时候)"); + + b.Property("DictionaryKey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典名称-待废弃核查"); + + b.Property("DictionaryType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("枚举字典Type"); + + b.Property("EnumType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("后端翻译的类型 对应前端界面 Dictionary Date"); + + b.Property("ForeignKeyEnText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ForeignKeyTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键表"); + + b.Property("ForeignKeyText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Text"); + + b.Property("ForeignKeyValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("外键Value"); + + b.Property("Identification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标识"); + + b.Property("InterfaceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("接口名"); + + b.Property("IsBeforeModifyView") + .HasColumnType("bit"); + + b.Property("IsConfig") + .HasColumnType("bit") + .HasComment("未知是否有用-废弃核查"); + + b.Property("IsDefaultChoice") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFinish") + .HasColumnType("bit") + .HasComment("是否完成"); + + b.Property("IsHaveReason") + .HasColumnType("bit") + .HasComment("是否有原因"); + + b.Property("IsHaveSign") + .HasColumnType("bit") + .HasComment("是否有签名"); + + b.Property("IsJoinPlan") + .HasColumnType("bit") + .HasComment("是否加入计划"); + + b.Property("IsShowByTrialConfig") + .HasColumnType("bit") + .HasComment("待废弃核查"); + + b.Property("IsShowParent") + .HasColumnType("int"); + + b.Property("IsSpecialType") + .HasColumnType("bit") + .HasComment("是否为特殊类型"); + + b.Property("ModuleTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ObjectTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sort") + .HasColumnType("int"); + + b.Property("TableConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("TrialConfigRelyFieldName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("待废弃核查"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UrlConfigJsonStr") + .HasColumnType("nvarchar(max)"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("FrontAuditConfig", t => + { + t.HasComment("稽查 - 配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HospitalName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier") + .HasComment("中心Id"); + + b.Property("UniversityAffiliated") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UniversityAffiliatedCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Hospital", t => + { + t.HasComment("机构 - 医院"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("这个字段废除,放在用户角色上面,后续删除"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DepartmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailToken") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsFirstAdd") + .HasColumnType("bit") + .HasComment("首次登录需要修改密码"); + + b.Property("IsTestUser") + .HasColumnType("bit"); + + b.Property("IsZhiZhun") + .HasColumnType("bit") + .HasComment("内部用户 外部用户"); + + b.Property("LastChangePassWordTime") + .HasColumnType("datetime2") + .HasComment("上一次修改密码的时间"); + + b.Property("LastLoginIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LastLoginTime") + .HasColumnType("datetime2"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PasswordChanged") + .HasColumnType("bit"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PositionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PrivacyPolicyId") + .HasColumnType("uniqueidentifier"); + + b.Property("Sex") + .HasColumnType("int"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserCeateSource") + .HasColumnType("int"); + + b.Property("UserCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .UseCollation("Chinese_PRC_CS_AS"); + + b.Property("UserWorkLanguage") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("IdentityUser", t => + { + t.HasComment("后台 - 系统真实账户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ImageShare", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("ImageShare", t => + { + t.HasComment("影像 - 影像分享记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CheckState") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RelativePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ResultPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("InspectionFile", t => + { + t.HasComment("一致性核查文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrontType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InternationalizationType") + .HasColumnType("int"); + + b.Property("Module") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishLogId") + .HasColumnType("uniqueidentifier") + .HasComment("关联版本历史记录表Id"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 1 2 预翻译 已确认 废除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Internationalization", t => + { + t.HasComment("后台 - 国际化配置表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApiPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("Api 接口地址"); + + b.Property("Component") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("组件路径"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCache") + .HasColumnType("bit"); + + b.Property("IsDisplay") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("启用 禁用"); + + b.Property("IsExternalLink") + .HasColumnType("bit"); + + b.Property("IsInTabDisplay") + .HasColumnType("bit"); + + b.Property("LanguageMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuIcon") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MenuType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型(M目录 C菜单 F按钮 L链接)"); + + b.Property("Meta") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("上级菜单"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("路由地址"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("权限点"); + + b.Property("Redirect") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Menu", t => + { + t.HasComment("后台 - 系统菜单 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyPart") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("ImageDate") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModifyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadVideoTime") + .HasColumnType("datetime2"); + + b.Property("VideoName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoObjectName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VideoUrl") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudy", t => + { + t.HasComment("影像 - 非dicom检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageLabelNoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("OriginNoneDicomStudyId") + .HasColumnType("uniqueidentifier") + .HasComment("为了不影响原始检查,跟任务绑定的 NoneDicomStudyId 为guid空 这个字段记录跟原始检查绑"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("NoneDicomStudyFile", t => + { + t.HasComment("影像 - 非dicom检查关联文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganInfo", t => + { + t.HasComment("后台 - 系统标准器官 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Classification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类"); + + b.Property("ClassificationEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类 英文"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit") + .HasComment("是否可编辑位置"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsLymphNodes") + .HasColumnType("int") + .HasComment("是否是淋巴结"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OrganType") + .HasColumnType("int") + .HasComment("器官类型"); + + b.Property("Part") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位"); + + b.Property("PartEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("部位 英文"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("序号"); + + b.Property("TULAT") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置"); + + b.Property("TULATEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("位置 英文"); + + b.Property("TULOC") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官"); + + b.Property("TULOCEN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("TULOC 器官 英文"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("标准Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("OrganTrialInfo", t => + { + t.HasComment("项目标准 - 器官"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CalculateTime") + .HasColumnType("datetime2"); + + b.Property("CalculateUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Payment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("AdjustmentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("YearMonthDate") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentAdjustment", t => + { + t.HasComment("医生计费 - 每月支付记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasePrice") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Count") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExchangeRate") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PaymentCNY") + .HasPrecision(18, 4) + .HasColumnType("decimal(18,4)"); + + b.Property("PaymentId") + .HasColumnType("uniqueidentifier"); + + b.Property("PaymentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PaymentUSD") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("PersonalAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowCodeOrder") + .HasColumnType("int"); + + b.Property("ShowTypeOrder") + .HasColumnType("int"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PaymentDetail", t => + { + t.HasComment("医生计费 - 每月支付详情表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BeginDate") + .HasColumnType("date"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CityCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CountryCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("date"); + + b.Property("Hospital") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Major") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MajorCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProvinceCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("School") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SchoolCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Training") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrainingCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Postgraduate", t => + { + t.HasComment("医生 - 继续教育经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("int"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Position") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousHistory", t => + { + t.HasComment("受试者访视 - 既往放疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsPD") + .HasColumnType("bit"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TreatmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousOther", t => + { + t.HasComment("受试者访视 - 既往其他治疗史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalLevel") + .HasColumnType("int") + .HasComment("临床级别"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataType") + .HasColumnType("int") + .HasComment("数据类型"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsVisist") + .HasColumnType("bit"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadType") + .HasColumnType("int") + .HasComment("上传方式"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousPDF", t => + { + t.HasComment("受试者访视 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsSubjectLevel") + .HasColumnType("bit"); + + b.Property("OperationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OperationTime") + .HasColumnType("datetime2"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PreviousSurgery", t => + { + t.HasComment("受试者访视 - 既往手术史"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("PublishTime") + .HasColumnType("datetime2"); + + b.Property("State") + .HasColumnType("int") + .HasComment("0 开发中 ,已发布"); + + b.Property("UpdateContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Version_US") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("PublishLog", t => + { + t.HasComment("后台 - 系统发布日志 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ChallengeCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CloseResonEnum") + .HasColumnType("int"); + + b.Property("ClosedTime") + .HasColumnType("datetime2"); + + b.Property("ClosedUser") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1200) + .HasColumnType("nvarchar(1200)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int"); + + b.Property("DeadlineTime") + .HasColumnType("datetime2"); + + b.Property("IsClosed") + .HasColumnType("bit"); + + b.Property("LatestMsgTime") + .HasColumnType("datetime2"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("ReUploadUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReUploadedTime") + .HasColumnType("datetime2"); + + b.Property("ReUploader") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReuploadEnum") + .HasColumnType("int"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallenge", t => + { + t.HasComment("受试者访视 - QC质疑"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QCChallengeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TalkContent") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCChallengeDialog", t => + { + t.HasComment("受试者访视 - QC质疑对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("QCQuestion", t => + { + t.HasComment("后台 - QC质控问题(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("RankPrice", t => + { + t.HasComment("医生计费 - 不同时间点价格设置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsCRCApplicationRevoke") + .HasColumnType("bit") + .HasComment("CRC是否正在申请撤回"); + + b.Property("IsCRCConfirm") + .HasColumnType("bit"); + + b.Property("IsClinicalDataBlind") + .HasColumnType("bit") + .HasComment("临床数据是否盲化"); + + b.Property("IsClinicalDataComplete") + .HasColumnType("bit") + .HasComment("临床数据是否完整"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsNotNeedPMConfirm") + .HasColumnType("bit"); + + b.Property("IsPMConfirm") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("模块名称"); + + b.Property("ModuleType") + .HasColumnType("int") + .HasComment("模块类型"); + + b.Property("ReadModuleAddTypeEnum") + .HasColumnType("int"); + + b.Property("ReadingPeriodPlanId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片计划ID"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModule", t => + { + t.HasComment("读片模块"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalFormId") + .HasColumnType("uniqueidentifier") + .HasComment("表单Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadModuleCriterionFrom", t => + { + t.HasComment("受试者 - 阅片模块临床表单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalData", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingClinicalDataPDF", t => + { + t.HasComment("项目的临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalDataTrialSetId") + .HasColumnType("uniqueidentifier") + .HasComment("临床数据类型Id"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("IsBlind") + .HasColumnType("bit") + .HasComment("是否盲化"); + + b.Property("IsComplete") + .HasColumnType("bit") + .HasComment("是否完整"); + + b.Property("IsSign") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsVisit") + .HasColumnType("bit") + .HasComment("是否为访视"); + + b.Property("ReadingClinicalDataState") + .HasColumnType("int") + .HasComment("临床数据状态"); + + b.Property("ReadingId") + .HasColumnType("uniqueidentifier") + .HasComment("访视Id 或者模块Id"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalData", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ReadingConsistentClinicalDataId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片临床数据ID"); + + b.Property("Size") + .HasColumnType("int"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingConsistentClinicalDataPDF", t => + { + t.HasComment("一致性分析临床数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPublicPage") + .HasColumnType("bit") + .HasComment("是否公共分页"); + + b.Property("PageName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分页名称"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCriterionPage", t => + { + t.HasComment("阅片标准分页"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingCustomTag", t => + { + t.HasComment("项目阅片 - 自定义标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("问题答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalAnswerType") + .HasColumnType("int") + .HasComment("全局答案类型"); + + b.Property("GlobalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("全局任务Id"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("问题ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("原任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingGlobalTaskInfo", t => + { + t.HasComment("阅片全局任务信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingImportFile", t => + { + t.HasComment("阅片导入表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("JudgeTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("裁判任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TaskIdOne") + .HasColumnType("uniqueidentifier") + .HasComment("第一个任务ID"); + + b.Property("TaskIdTwo") + .HasColumnType("uniqueidentifier") + .HasComment("第二个任务ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingJudgeInfo", t => + { + t.HasComment("阅片裁判信息"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("Content") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("对话内容"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UserTypeEnumInt") + .HasColumnType("int") + .HasComment("用户角色枚举"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("用户角色"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicalReviewDialog", t => + { + t.HasComment("阅片医学审核对话"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMedicineQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核问题Id"); + + b.Property("TaskMedicalReviewId") + .HasColumnType("uniqueidentifier") + .HasComment("医学审核Id"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineQuestionAnswer", t => + { + t.HasComment("阅片医学问题答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsGeneral") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否是必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineSystemQuestion", t => + { + t.HasComment("阅片医学审核系统问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsRequired") + .HasColumnType("bit") + .HasComment("是否必须"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目ID"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingMedicineTrialQuestion", t => + { + t.HasComment("阅片医学审核项目问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoneDicomFileId") + .HasColumnType("uniqueidentifier"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMark", t => + { + t.HasComment("项目阅片 - 非Dicom标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("NoneDicomMarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingNoneDicomMarkBinding", t => + { + t.HasComment("项目阅片 - 非Dicom标记绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("结果"); + + b.Property("OncologyTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("肿瘤学 阅片任务ID"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier") + .HasComment("受试者Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生肿瘤学阅片任务的 访视类型的阅片任务Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingOncologyTaskInfo", t => + { + t.HasComment("阅片肿瘤学 针对访视任务 添加了一个结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("GeneratedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGenerate") + .HasColumnType("bit"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("访视"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodPlan", t => + { + t.HasComment("阅片计划"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EffectOfTime") + .HasColumnType("datetime2") + .HasComment("生效时间"); + + b.Property("ExpirationDate") + .HasColumnType("datetime2") + .HasComment("截止日期"); + + b.Property("ExpirationVisitNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("截止访视"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsGlobal") + .HasColumnType("bit") + .HasComment("是否为全局阅片"); + + b.Property("IsTakeEffect") + .HasColumnType("int") + .HasComment("是否生效"); + + b.Property("ReadingPeriodName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("阅片期名称"); + + b.Property("ReadingScope") + .HasColumnType("int") + .HasComment("阅片范围"); + + b.Property("ReadingSetType") + .HasColumnType("int") + .HasComment("阅片配置的类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSet", t => + { + t.HasComment("阅片期设置 只会设计到所有人 或者某个Site 针对全局"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingPeriodSetId") + .HasColumnType("uniqueidentifier") + .HasComment("阅片期配置ID"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingPeriodSite", t => + { + t.HasComment("阅片期和中心关联"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2") + .HasComment("确认时间"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionSystem", t => + { + t.HasComment("系统阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArbitrationRule") + .HasColumnType("int") + .HasComment("仲裁对象"); + + b.Property("CircleRadius") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionGroup") + .HasColumnType("int"); + + b.Property("CriterionModalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CriterionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标准"); + + b.Property("CriterionType") + .HasColumnType("int") + .HasComment("标准类型"); + + b.Property("DefaultSegmentName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("描述"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("修约小数点"); + + b.Property("EvaluationReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估原因"); + + b.Property("EvaluationResult") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("评估结果"); + + b.Property("FollowGlobalVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续全局自动分配默认状态"); + + b.Property("FollowJudgeTaskAutoAssignDefaultState") + .HasColumnType("int"); + + b.Property("FollowVisitAutoAssignDefaultState") + .HasColumnType("int") + .HasComment("后续访视自动分配默认状态"); + + b.Property("FormType") + .HasColumnType("int") + .HasComment("表单类型"); + + b.Property("GlobalUpdateType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片评估更新类型"); + + b.Property("ImageDownloadEnum") + .HasColumnType("int") + .HasComment("阅片过程下载影像"); + + b.Property("ImagePlatform") + .HasColumnType("int") + .HasComment("阅片平台"); + + b.Property("ImageUploadEnum") + .HasColumnType("int") + .HasComment("阅片过程上传影像"); + + b.Property("IsAdditionalAssessment") + .HasColumnType("bit") + .HasComment("是否附加评估"); + + b.Property("IsArbitrationReading") + .HasColumnType("bit") + .HasComment("仲裁阅片"); + + b.Property("IsAutoCreate") + .HasColumnType("bit") + .HasComment("自动 手动生成任务"); + + b.Property("IsCompleteConfig") + .HasColumnType("bit") + .HasComment("是否完成配置"); + + b.Property("IsConfirm") + .HasColumnType("bit") + .HasComment("是否确认"); + + b.Property("IsConfirmMedicineQuestion") + .HasColumnType("bit") + .HasComment("是确认医学审核问题"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsFollowGlobalVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续全局自动分配"); + + b.Property("IsFollowJudgeTaskAutoAssign") + .HasColumnType("bit"); + + b.Property("IsFollowVisitAutoAssign") + .HasColumnType("bit") + .HasComment("后续访视任务自动分配"); + + b.Property("IsGlobalReading") + .HasColumnType("bit") + .HasComment("是否生成全局阅片任务"); + + b.Property("IsImageFilter") + .HasColumnType("bit") + .HasComment("是否影像筛选"); + + b.Property("IsMustGlobalReading") + .HasColumnType("bit") + .HasComment("是否必须全局阅片"); + + b.Property("IsOncologyReading") + .HasColumnType("bit") + .HasComment("肿瘤学阅片 原字段 IsClinicalReading"); + + b.Property("IsReadingPeriod") + .HasColumnType("bit") + .HasComment("存在阅片期"); + + b.Property("IsReadingShowPreviousResults") + .HasColumnType("bit") + .HasComment("IR阅片页面是否可以查看既往任务结果"); + + b.Property("IsReadingShowSubjectInfo") + .HasColumnType("bit") + .HasComment("阅片是否显示受试者信息"); + + b.Property("IsReadingTaskViewInOrder") + .HasColumnType("int") + .HasComment("任务展示访视 读片任务显示是否顺序"); + + b.Property("IsShowDetail") + .HasColumnType("bit") + .HasComment("是否显示详情"); + + b.Property("IsSigned") + .HasColumnType("bit") + .HasComment("是否签名"); + + b.Property("IsSystemSetOncology") + .HasColumnType("bit") + .HasComment("是否系统设置了 肿瘤学"); + + b.Property("IsUrgent") + .HasColumnType("bit") + .HasComment("是否加急"); + + b.Property("IseCRFShowInDicomReading") + .HasColumnType("bit") + .HasComment("eCRF报告是否显示在图像页面"); + + b.Property("ReadingInfoSignTime") + .HasColumnType("datetime2") + .HasComment("阅片信息签名时间"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准ID"); + + b.Property("ReadingTaskViewEnum") + .HasColumnType("int") + .HasComment("任务组织级别"); + + b.Property("ReadingTool") + .HasColumnType("int") + .HasComment("阅片工具"); + + b.Property("ReadingToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ReadingType") + .HasColumnType("int") + .HasComment("阅片模式"); + + b.Property("ReadingVersionEnum") + .HasColumnType("int"); + + b.Property("SegmentToolList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SynchronizeOriginalTime") + .HasColumnType("datetime2") + .HasComment("同步器官时间"); + + b.Property("SynchronizeTime") + .HasColumnType("datetime2") + .HasComment("同步时间"); + + b.Property("TaskAllocateObjEnum") + .HasColumnType("int") + .HasComment("任务分配对象"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionCriterionTrial", t => + { + t.HasComment("项目阅片标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingQuestionCriterionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionSystem", t => + { + t.HasComment("系统阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AnswerCombination") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("答案组合"); + + b.Property("AnswerGroup") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("答案分组"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题Id"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("ConvertShowType") + .HasColumnType("int") + .HasComment("转化显示类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExcludeShowVisitList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("GlobalReadingShowType") + .HasColumnType("int") + .HasComment("全局阅片显示类型"); + + b.Property("GroupClassify") + .HasColumnType("int") + .HasComment("分组分类"); + + b.Property("GroupEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文分组"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组ID"); + + b.Property("GroupName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分组"); + + b.Property("HighlightAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("高亮问题的答案"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdditional") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeQuestion") + .HasColumnType("bit") + .HasComment("是否是裁判问题"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否是必须"); + + b.Property("IsShowInDicom") + .HasColumnType("bit") + .HasComment("是否显示在Dicom阅片中"); + + b.Property("JudgeDifferenceType") + .HasColumnType("int") + .HasComment("裁判百分比或绝对值的相差值匹配规则"); + + b.Property("JudgeDifferenceValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("裁判百分比或绝对值的相差值"); + + b.Property("JudgeType") + .HasColumnType("int") + .HasComment("裁判类型"); + + b.Property("LesionType") + .HasColumnType("int") + .HasComment("病灶类型"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("LimitShow") + .HasColumnType("int") + .HasComment("限制显示"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("序号标记"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题ID"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionGenre") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("QuestionType") + .HasColumnType("int") + .HasComment("问题类型"); + + b.Property("ReadingCriterionPageId") + .HasColumnType("uniqueidentifier") + .HasComment("标准分页Id"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目标准Id"); + + b.Property("ReadingQuestionSystemId") + .HasColumnType("uniqueidentifier") + .HasComment("系统问题ID"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemParentId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准的ParentId"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目Id"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("类型值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int") + .HasComment("标准字典分组"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("IsSystemCriterion") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingSystemCriterionDictionary", t => + { + t.HasComment("系统标准 - 全局配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的CTSeriesId"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("首次添加任务ID"); + + b.Property("FromMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("来自于哪个标记"); + + b.Property("IdentityRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCanEditPosition") + .HasColumnType("bit"); + + b.Property("IsCurrentTaskAdd") + .HasColumnType("bit") + .HasComment("是否是当前任务添加"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDicomReading") + .HasColumnType("bit") + .HasComment("是Dicom阅片"); + + b.Property("MarkTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("标记工具"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MergeRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganInfoId") + .HasColumnType("uniqueidentifier") + .HasComment("器官Id"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PTSeriesId") + .HasColumnType("uniqueidentifier") + .HasComment("融合的PTSeriesId"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("截图地址"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReportMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("报告页面显示来自于哪个标记"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RowMark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("病灶编号"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SplitOrMergeType") + .HasColumnType("int"); + + b.Property("SplitRowId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗位WL"); + + b.Property("WW") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("窗宽WW"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableAnswerRowInfo", t => + { + t.HasComment("表格问题答案行数据"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("表格问题Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionAnswer", t => + { + t.HasComment("项目阅片 - 表格问题行记录子项答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据列"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("数据表名称"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier") + .HasComment("关联父问题"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int") + .HasComment("是否关联"); + + b.Property("IsEnable") + .HasColumnType("bit") + .HasComment("是否启用"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int") + .HasComment("最大问题数"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表的问题Id ReadingQuestionSystem的Id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("显示父问题"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("显示父问题的值"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("备注"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序号"); + + b.Property("ShowQuestion") + .HasColumnType("int") + .HasComment("是否显示"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统标准Id"); + + b.Property("TableQuestionType") + .HasColumnType("int") + .HasComment("表格问题类型"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("值"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionSystem", t => + { + t.HasComment("系统表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CDISCCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算标记"); + + b.Property("ClassifyAlgorithms") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("分类算法"); + + b.Property("ClassifyEditType") + .HasColumnType("int"); + + b.Property("ClassifyShowType") + .HasColumnType("int"); + + b.Property("ClassifyTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("分类问题表格Id"); + + b.Property("ClassifyType") + .HasColumnType("int") + .HasComment("分类类型"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("CustomUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义单位"); + + b.Property("DataSource") + .HasColumnType("int") + .HasComment("数据来源"); + + b.Property("DataTableColumn") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DataTableName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DependParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典code"); + + b.Property("ExportResultStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("导出结果"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件类型"); + + b.Property("ImageCount") + .HasColumnType("int") + .HasComment("图片数量"); + + b.Property("ImageMarkEnum") + .HasColumnType("int"); + + b.Property("ImageMarkTypeEnum") + .HasColumnType("int"); + + b.Property("ImageTool") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageToolAttribute") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCopy") + .HasColumnType("bit") + .HasComment("复制病灶的时候 是否复制这个问题"); + + b.Property("IsDepend") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsPreinstall") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("int"); + + b.Property("LimitEdit") + .HasColumnType("int") + .HasComment("限制编辑"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大答案长度"); + + b.Property("MaxRowCount") + .HasColumnType("int"); + + b.Property("OptionTypeEnum") + .HasColumnType("int"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionClassify") + .HasColumnType("int") + .HasComment("问题分类"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionMark") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题的Id ReadingQuestionTrial的id"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Remark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("注释"); + + b.Property("ShowChartTypeEnum") + .HasColumnType("int"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("ShowQuestion") + .HasColumnType("int"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TableQuestionType") + .HasColumnType("int"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Unit") + .HasColumnType("int") + .HasComment("单位"); + + b.Property("ValueType") + .HasColumnType("int") + .HasComment("数值类型"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTableQuestionTrial", t => + { + t.HasComment("项目阅片问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("答案"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("GlobalChangeAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("全局阅片修改的答案"); + + b.Property("IsGlobalChange") + .HasColumnType("bit") + .HasComment("全局阅片是否修改"); + + b.Property("PCWGInterimAnswer") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReadingQuestionCriterionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题标准Id"); + + b.Property("ReadingQuestionTrialId") + .HasColumnType("uniqueidentifier") + .HasComment("项目问题Id"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionAnswer", t => + { + t.HasComment("阅片任务答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomTagId") + .HasColumnType("uniqueidentifier"); + + b.Property("FristAddTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("InstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkId") + .HasColumnType("uniqueidentifier"); + + b.Property("MarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("MeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("OrderMarkName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherInstanceId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherMarkTool") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherMeasureData") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("OtherNumberOfFrames") + .HasColumnType("int"); + + b.Property("OtherPicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("OtherSeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherStudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("PicturePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowIndex") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskQuestionMark", t => + { + t.HasComment("项目阅片 - 任务问题标记"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RelevanceTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("关联的任务ID"); + + b.Property("RelevanceType") + .HasColumnType("int") + .HasComment("类型具体解释 看枚举"); + + b.Property("TaskId") + .HasColumnType("uniqueidentifier") + .HasComment("任务ID"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTaskRelation", t => + { + t.HasComment("任务关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("CrterionDictionaryGroup") + .HasColumnType("int"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsBaseLineUse") + .HasColumnType("bit"); + + b.Property("IsFollowVisitUse") + .HasColumnType("bit"); + + b.Property("ParentCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingTrialCriterionDictionary", t => + { + t.HasComment("项目阅片标准 - 全局配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("UserRoleId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ReadingUserConfig", t => + { + t.HasComment("项目阅片 - 用户配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AwardsHonors") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("AwardsHonorsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Grants") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("GrantsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Publications") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PublicationsCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Research") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("ResearchCN") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ResearchPublication", t => + { + t.HasComment("医生 - 科研学术记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Additional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("BankCardNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BankName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorNameInBank") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IDCard") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RankId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorPayInformation", t => + { + t.HasComment("医生计费 - 支付信息表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAEIP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("StudyCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadJsonStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPImageUpload", t => + { + t.HasComment("项目中心 - 影像推送记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPInstance", t => + { + t.HasComment("项目中心 - 推送Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestStudyTime") + .HasColumnType("datetime2"); + + b.Property("LatestPushTime") + .HasColumnType("datetime2"); + + b.Property("LatestStudyTime") + .HasColumnType("datetime2"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPPatient", t => + { + t.HasComment("项目中心 - 推送检查患者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPSeries", t => + { + t.HasComment("项目中心 - 推送序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsUploadFaild") + .HasColumnType("bit"); + + b.Property("IsUploadFinished") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .HasColumnType("uniqueidentifier"); + + b.Property("PatientIdStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideHalfLife") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadionuclideTotalDose") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalStartTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SCPStudy", t => + { + t.HasComment("项目中心 - 推送检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AvgValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("ColorRgb") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("MTV") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MajorAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MaxValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Median") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("MinValue") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Peak") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("SegmentJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SegmentNumber") + .HasColumnType("int"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShortAxis") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TLG") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Variance") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("Volume") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segment", t => + { + t.HasComment("分割"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("RowId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("TableQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentBinding", t => + { + t.HasComment("分割绑定"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsSaved") + .HasColumnType("bit"); + + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Segmentation", t => + { + t.HasComment("分割分组"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AltKey") + .HasColumnType("bit"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CtrlKey") + .HasColumnType("bit"); + + b.Property("ImageToolType") + .HasColumnType("int") + .HasComment("影像工具类型"); + + b.Property("Keyboardkey") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对应的键盘按键"); + + b.Property("MetaKey") + .HasColumnType("bit"); + + b.Property("ShiftKey") + .HasColumnType("bit"); + + b.Property("ShortcutKeyEnum") + .HasColumnType("int") + .HasComment("按键枚举"); + + b.Property("Text") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("ShortcutKey", t => + { + t.HasComment("用户配置 - 快捷键"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("City") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ContactName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ContactPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DirectorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DirectorPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HospitalId") + .HasColumnType("uniqueidentifier"); + + b.Property("Province") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SiteNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("UniqueCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Site", t => + { + t.HasComment("机构 - Site"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsTrialLevel") + .HasColumnType("bit"); + + b.Property("SponsorCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Sponsor", t => + { + t.HasComment("机构 - Sponsor"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveFinishedTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FailedFileCount") + .HasColumnType("int"); + + b.Property("FileCount") + .HasColumnType("int"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicom") + .HasColumnType("bit"); + + b.Property("IsDicomReUpload") + .HasColumnType("bit"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RecordPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier") + .HasComment("Dicom/非Dicom"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UploadFinishedTime") + .HasColumnType("datetime2"); + + b.Property("UploadStartTime") + .HasColumnType("datetime2"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("StudyMonitor", t => + { + t.HasComment("项目 - 影像上传监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Age") + .HasColumnType("int"); + + b.Property("BirthDate") + .HasColumnType("datetime2"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("FinalSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("FirstGiveMedicineTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Height") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollment") + .HasColumnType("bit"); + + b.Property("IsReReadingOrBackInfluenceAnalysis") + .HasColumnType("bit") + .HasComment("重阅或者退回影响一致性分析"); + + b.Property("IsSubjectQuit") + .HasColumnType("bit") + .HasComment("受试者退出"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LatestSubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentTime") + .HasColumnType("datetime2"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Sex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignDate") + .HasColumnType("datetime2") + .HasComment("知情同意书签署日期"); + + b.Property("Status") + .HasColumnType("int") + .HasComment("1 访视中,2 出组 3 访视结束"); + + b.Property("SuspendReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("访视中止原因"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitOverTime") + .HasColumnType("datetime2"); + + b.Property("Weight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Subject", t => + { + t.HasComment("项目 - 受试者"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FinalAnswer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果"); + + b.Property("FinalTranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("最终结果翻字典"); + + b.Property("IsFinalResult") + .HasColumnType("bit") + .HasComment("是否是最终结果"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TranslateDictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("附加评估答案翻译字典"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingQuestionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectAdditionalEvaluationResult", t => + { + t.HasComment("受试者 - 附加评估标准结果"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCanceDoctor", t => + { + t.HasComment("受试者 - 阅片标准取消分配医生记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsJoinEvaluation") + .HasColumnType("bit") + .HasComment("是否参与评估"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluation", t => + { + t.HasComment("受试者 - 参与附加评估标准配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ImageDeterminationResultState") + .HasColumnType("int") + .HasComment("影像判断结果"); + + b.Property("ImageFilterState") + .HasColumnType("int") + .HasComment("影像筛选状态"); + + b.Property("IsGeneratedTask") + .HasColumnType("bit") + .HasComment("是否已生成任务"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsReading") + .HasColumnType("bit"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectCriteriaEvaluationVisitStudyFilter", t => + { + t.HasComment("受试者 - 附加评估标准影像筛选检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArmEnum") + .HasColumnType("int"); + + b.Property("AssignTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("ReplacedSubjectUserId") + .HasColumnType("uniqueidentifier") + .HasComment("该属性有值 说明该医生被替换了 分配的时候 要过滤掉"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("Auditor") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ChallengeState") + .HasColumnType("int"); + + b.Property("CheckBackTime") + .HasColumnType("datetime2"); + + b.Property("CheckChallengeState") + .HasColumnType("int"); + + b.Property("CheckPassedTime") + .HasColumnType("datetime2"); + + b.Property("CheckResult") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CheckState") + .HasColumnType("int") + .HasComment("核查状态"); + + b.Property("CheckTime") + .HasColumnType("datetime2"); + + b.Property("CheckUserId") + .HasColumnType("uniqueidentifier") + .HasComment("一致性核查人Id"); + + b.Property("CloseTheReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关闭一致性质疑原因"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentActionUserExpireTime") + .HasColumnType("datetime2"); + + b.Property("CurrentActionUserId") + .HasColumnType("uniqueidentifier") + .HasComment("当前质控领取人"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ForwardState") + .HasColumnType("int"); + + b.Property("ForwardTime") + .HasColumnType("datetime2"); + + b.Property("ForwardUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InPlan") + .HasColumnType("bit"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsCheckBack") + .HasColumnType("bit") + .HasComment("是否一致性核查回退"); + + b.Property("IsConfirmedClinicalData") + .HasColumnType("bit") + .HasComment("是否确认了、签名了 临床数据完整性"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollmentConfirm") + .HasColumnType("bit"); + + b.Property("IsFinalVisit") + .HasColumnType("bit"); + + b.Property("IsLostVisit") + .HasColumnType("bit"); + + b.Property("IsPMBackOrReReading") + .HasColumnType("bit"); + + b.Property("IsQCConfirmedReupload") + .HasColumnType("bit"); + + b.Property("IsTake") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVisitTaskGenerated") + .HasColumnType("bit"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ManualPassReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("通过原因"); + + b.Property("OutPlanPreviousVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("计划外上一访视"); + + b.Property("PDState") + .HasColumnType("int"); + + b.Property("PreliminaryAuditTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("单审通过人"); + + b.Property("ReadingStatus") + .HasColumnType("int"); + + b.Property("RequestBackState") + .HasColumnType("int") + .HasComment("一致性核查 回退"); + + b.Property("ReviewAuditTime") + .HasColumnType("datetime2"); + + b.Property("ReviewAuditUserId") + .HasColumnType("uniqueidentifier") + .HasComment("双审通过人"); + + b.Property("SVENDTC") + .HasColumnType("datetime2"); + + b.Property("SVSTDTC") + .HasColumnType("datetime2"); + + b.Property("SVUPDES") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SecondReviewState") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitState") + .HasColumnType("int") + .HasComment("提交状态"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("SubmitUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitExecuted") + .HasColumnType("int") + .HasComment("0 未执行 1 执行了 2 不可用"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitStageId") + .HasColumnType("uniqueidentifier") + .HasComment("访视计划Id,计划外没有"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisit", t => + { + t.HasComment("受试者访视"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplyReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ApplyUserRole") + .HasColumnType("int"); + + b.Property("AuditTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EarliestScanDate") + .HasColumnType("datetime2"); + + b.Property("ImageBackState") + .HasColumnType("int") + .HasComment("影像上传 回退"); + + b.Property("LatestScanDate") + .HasColumnType("datetime2") + .HasComment("最晚拍片日期"); + + b.Property("ResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubmitTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SubjectVisitImageBackRecord", t => + { + t.HasComment("受试者访视影像回退记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysTemplateTypeEnum") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SysFileType", t => + { + t.HasComment("后台 - 系统文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Element") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAdd") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsFixed") + .HasColumnType("bit"); + + b.Property("ReplaceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TagDescriptionCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ValueRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemAnonymization", t => + { + t.HasComment("系统 - 匿名化配置(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BasicDataTypeEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Value") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ValueCN") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemBasicData", t => + { + t.HasComment("系统 - 签名模板场景配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalQuestion", t => + { + t.HasComment("系统临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemClinicalTableQuestion", t => + { + t.HasComment("系统临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionDictionaryCode", t => + { + t.HasComment("系统标准 - 字典配置 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemCriterionKeyFile", t => + { + t.HasComment("系统标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocConfirmedIdentityUser", t => + { + t.HasComment("后台 - 系统文档签署记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("SystemDocNeedConfirmedUserType", t => + { + t.HasComment("后台 - 系统文档需要签署用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DocLanguageType") + .HasColumnType("int"); + + b.Property("DocUserSignType") + .HasColumnType("int"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocument", t => + { + t.HasComment("后台 - 系统签署文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("SystemDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemDocumentAttachment", t => + { + t.HasComment("后台 - 系统签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ApplicableProjectEnum") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NoticeContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("NoticeLevelEnum") + .HasColumnType("int"); + + b.Property("NoticeModeEnum") + .HasColumnType("int"); + + b.Property("NoticeStateEnum") + .HasColumnType("int"); + + b.Property("NoticeTypeEnum") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishedTime") + .HasColumnType("datetime2"); + + b.Property("PublishedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNotice", t => + { + t.HasComment("后台 - 系统通知"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserRead", t => + { + t.HasComment("后台 - 系统通知用户读取记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("SystemNoticeId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SystemNoticeUserType", t => + { + t.HasComment("后台 - 系统通知用户类型配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EnrollId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsJudgeDoctor") + .HasColumnType("bit") + .HasComment("是否是裁判医生 裁判医生单独加入"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanReadingRatio") + .HasColumnType("int"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskAllocationRule", t => + { + t.HasComment("项目阅片 - 分配规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindSubjectNumberOfPlaces") + .HasColumnType("int"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IntervalWeeks") + .HasColumnType("int"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsGenerateGlobalTask") + .HasColumnType("bit"); + + b.Property("IsHaveReadingPeriod") + .HasColumnType("bit"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanSubjectCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskConsistentRule", t => + { + t.HasComment("项目阅片 - 一致性分析生成任务配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InfluenceTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("OptType") + .HasColumnType("int") + .HasComment("对影响任务进行的操作"); + + b.Property("OriginalTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInfluence", t => + { + t.HasComment("项目阅片 - 退回重阅影响"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Anonymize") + .HasColumnType("bit"); + + b.Property("BitsAllocated") + .HasColumnType("int"); + + b.Property("CPIStatus") + .HasColumnType("bit"); + + b.Property("CorrectedImage") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DecayCorrection") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EncapsulatedDocument") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("FrameOfReferenceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FrameTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("HtmlPath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImageColumns") + .HasColumnType("int"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageRows") + .HasColumnType("int"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceNumber") + .HasColumnType("int"); + + b.Property("InstanceTime") + .HasColumnType("datetime2"); + + b.Property("IsEncapsulated") + .HasColumnType("bit"); + + b.Property("MediaStorageSOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MediaStorageSOPInstanceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NumberOfFrames") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhotometricInterpretation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelRepresentation") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleIntercept") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RescaleSlope") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SOPClassUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceOfUltrasoundRegions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SliceLocation") + .HasColumnType("int"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SopInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TransferSytaxUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Units") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.Property("WindowCenter") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WindowWidth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskInstance", t => + { + t.HasComment("项目阅片 - 任务后处理Instance"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("AuditAdviceEnum") + .HasColumnType("int") + .HasComment("审核建议"); + + b.Property("AuditSignTime") + .HasColumnType("datetime2") + .HasComment("审核通过时间"); + + b.Property("AuditState") + .HasColumnType("int") + .HasComment("审核状态"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DialogCloseReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("对话关闭原因"); + + b.Property("DisagreeReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不同意重阅原因"); + + b.Property("DoctorUserIdeaEnum") + .HasColumnType("int") + .HasComment("阅片人是否认同"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("文件名称"); + + b.Property("ImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("图片路径"); + + b.Property("IsApplyHeavyReading") + .HasColumnType("bit") + .HasComment("是否申请重阅"); + + b.Property("IsAutoGenerate") + .HasColumnType("bit"); + + b.Property("IsClosedDialog") + .HasColumnType("bit") + .HasComment("是否关闭对话"); + + b.Property("IsHaveQuestion") + .HasColumnType("bit") + .HasComment("是否有问题"); + + b.Property("IsInvalid") + .HasColumnType("bit") + .HasComment("无效的 为True无效"); + + b.Property("IsSendMessage") + .HasColumnType("bit") + .HasComment("是否发送消息"); + + b.Property("LatestReplyUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("MedicalDialogCloseEnum") + .HasColumnType("int") + .HasComment("医学审核对话关闭原因"); + + b.Property("MedicalManagerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PDRelationTaskIdListStr") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("Questioning") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("质询问题"); + + b.Property("SaveConclusionTime") + .HasColumnType("datetime2") + .HasComment("保存结论时间"); + + b.Property("SaveQuestionTime") + .HasColumnType("datetime2") + .HasComment("保存问题的时间"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReview", t => + { + t.HasComment("项目阅片 - 医学审核"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PlanGlobalCount") + .HasColumnType("int"); + + b.Property("PlanJudgeCount") + .HasColumnType("int"); + + b.Property("PlanTumorCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskMedicalReviewRule", t => + { + t.HasComment("项目阅片 - 一致性分析规则"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AcquisitionDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomSeriesTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageOrientationPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImagePositionPatient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageResizePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("ImagerPixelSpacing") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RadiopharmaceuticalInformationSequence") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SequenceName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeriesNumber") + .HasColumnType("int"); + + b.Property("SeriesTime") + .HasColumnType("datetime2"); + + b.Property("SliceThickness") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskSeries", t => + { + t.HasComment("项目阅片 - 任务后上传序列"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AccessionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AcquisitionTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartExamined") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartForEditOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceSerialNumber") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeviceUID") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DicomStudyTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InstanceCount") + .HasColumnType("int"); + + b.Property("InstitutionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Manufacturer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ManufacturerModelName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalities") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ModalityForEdit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientAge") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientBirthDate") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientSex") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PatientWeight") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SeqId") + .HasColumnType("uniqueidentifier"); + + b.Property("SeriesCount") + .HasColumnType("int"); + + b.Property("SoftwareVersions") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyDIRPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyInstanceUid") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TriggerTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TaskStudy", t => + { + t.HasComment("项目阅片 - 任务后上传检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttendedReviewerTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindBaseLineName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindFollowUpPrefix") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BodyPartTypes") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CROId") + .HasColumnType("uniqueidentifier"); + + b.Property("ChangeDefalutDays") + .HasColumnType("int"); + + b.Property("ClinicalInformationTransmissionEnum") + .HasColumnType("int") + .HasComment("临床信息传输 1:系统录入 2:系统录入+PDF 0:无"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("CollectImagesEnum") + .HasColumnType("int") + .HasComment("阅片任务产生之前 采集影像"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeclarationTypes") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("DigitPlaces") + .HasColumnType("int"); + + b.Property("EmailAuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码/授权码"); + + b.Property("EmailFromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件箱账号"); + + b.Property("EmailFromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发件人"); + + b.Property("EmailSMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("SMTP服务器"); + + b.Property("EmailSMTPServerPort") + .HasColumnType("int") + .HasComment("SMTP端口"); + + b.Property("ExpectedPatients") + .HasColumnType("int"); + + b.Property("Expedited") + .HasColumnType("int"); + + b.Property("ExperimentName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("实验名称"); + + b.Property("GRRReviewers") + .HasColumnType("int"); + + b.Property("HeadPI") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("负责人PI"); + + b.Property("ImageFormatList") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("Indication") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCRAAuditClinicalInformation") + .HasColumnType("bit") + .HasComment("是否审核 临床信息"); + + b.Property("IsConfigureEmail") + .HasColumnType("bit") + .HasComment("是否配置过邮箱"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsEnrollementQualificationConfirm") + .HasColumnType("bit") + .HasComment("是否有 入组性确认"); + + b.Property("IsExternalViewTrialChart") + .HasColumnType("bit") + .HasComment("外部人员 查看项目报表"); + + b.Property("IsHaveFirstGiveMedicineDate") + .HasColumnType("bit") + .HasComment("是否 有基准时间(首次给药时间)"); + + b.Property("IsHaveSubjectAge") + .HasColumnType("bit") + .HasComment("是否有 受试者年龄"); + + b.Property("IsIQCAutoNextTask") + .HasColumnType("bit"); + + b.Property("IsIQCAutoTaskDistinguishType") + .HasColumnType("bit"); + + b.Property("IsImageConsistencyVerification") + .HasColumnType("bit") + .HasComment("影像一致性核查"); + + b.Property("IsImageExport") + .HasColumnType("bit") + .HasComment("影像导出"); + + b.Property("IsImageQualityControl") + .HasColumnType("bit"); + + b.Property("IsImageReplicationAcrossTrial") + .HasColumnType("bit") + .HasComment("跨项目复制"); + + b.Property("IsNoticeSubjectCodeRule") + .HasColumnType("bit") + .HasComment("是否 提醒受试者编号规则"); + + b.Property("IsOpenLostVistRead") + .HasColumnType("bit"); + + b.Property("IsPACSConnect") + .HasColumnType("bit"); + + b.Property("IsPDProgressView") + .HasColumnType("bit") + .HasComment("PD 进展是否显示 配置访视 是否显示 PD进展 (从而可以设置状态)"); + + b.Property("IsQCQuestionConfirmed") + .HasColumnType("bit"); + + b.Property("IsSPMJoinReReadingApproval") + .HasColumnType("bit") + .HasComment("SPM 参与重阅审批"); + + b.Property("IsSPMJoinReviewerSelect") + .HasColumnType("bit") + .HasComment("SPM 参与阅片人筛选"); + + b.Property("IsSPMJoinSiteSurvey") + .HasColumnType("bit") + .HasComment("SPM 参与中心调研"); + + b.Property("IsShowStudyName") + .HasColumnType("bit"); + + b.Property("IsSubjectExpeditedView") + .HasColumnType("bit") + .HasComment("配置Suject Edit页面 是否显示 加急"); + + b.Property("IsSubjectSecondCodeView") + .HasColumnType("bit"); + + b.Property("IsSubjectSexView") + .HasColumnType("bit"); + + b.Property("IsSupportQCDownloadImage") + .HasColumnType("bit"); + + b.Property("IsTrialBasicLogicConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialPACSConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialProcessConfirmed") + .HasColumnType("bit"); + + b.Property("IsTrialStart") + .HasColumnType("bit"); + + b.Property("IsTrialUrgentConfirmed") + .HasColumnType("bit"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsVerifyVisitImageDate") + .HasColumnType("bit") + .HasComment("是否 验证拍片日期"); + + b.Property("MainResearchUnit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("主研单位"); + + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + + b.Property("MessageFromClient") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MessageFromClientName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Modalitys") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OutEnrollmentVisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("出组后计划外访视名称"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("PlanSiteCount") + .HasColumnType("int"); + + b.Property("PlanVisitCount") + .HasColumnType("int"); + + b.Property("PreliminaryAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ProjectCycle") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QCProcessEnum") + .HasColumnType("int") + .HasComment("QC流程 0 不审,1 单审,2双审"); + + b.Property("QCQuestionConfirmedTime") + .HasColumnType("datetime2"); + + b.Property("QCQuestionConfirmedUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReadingMode") + .HasColumnType("int") + .HasComment("阅片方式"); + + b.Property("ResearchProgramNo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("研究方案号"); + + b.Property("ReviewAuditReuploadText") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewModeId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewProtocol") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ReviewProtocolName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SponsorId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectCodeRule") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("受试者编号具体规则"); + + b.Property("SyncClinicalDataTime") + .HasColumnType("datetime2") + .HasComment("同步临床数据时间"); + + b.Property("TimePointsPerPatient") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TotalReviewers") + .HasColumnType("int"); + + b.Property("TrialCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialDataStoreType") + .HasColumnType("int"); + + b.Property("TrialEnrollStatus") + .HasColumnType("int") + .HasComment("入组那一块的状态"); + + b.Property("TrialExtraConfigJsonStr") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)"); + + b.Property("TrialFinishTime") + .HasColumnType("datetime2") + .HasComment("项目完成时间"); + + b.Property("TrialFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TrialStatusStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("启动状态"); + + b.Property("TrialType") + .HasColumnType("int") + .HasComment("项目类型 1 正式项目、0 非正式项目 2是培训项目"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanConfirmed") + .HasColumnType("bit"); + + b.Property("VitrualSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Trial", t => + { + t.HasComment("项目 - 项目基本信息与配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FrontAuditConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsShow") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialAuditShow"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsHandAdd") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialBodyPart", t => + { + t.HasComment("项目 - 项目部位配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialClinicalDataSetId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalDataSetCriterion", t => + { + t.HasComment("项目标准 - 临床数据配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalQuestionShowEnum") + .HasColumnType("int") + .HasComment("显示类型"); + + b.Property("ClinicalQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CustomCalculateMark") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("GroupId") + .HasColumnType("uniqueidentifier") + .HasComment("分组Id"); + + b.Property("IsCheckDate") + .HasColumnType("bit") + .HasComment("是否是检查日期"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("MaxQuestionCount") + .HasColumnType("int") + .HasComment("最大行数"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier") + .HasComment("父问题Id"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("父问题触发值"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemClinicalQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统临床问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalQuestion", t => + { + t.HasComment("项目临床数据问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalculateQuestions") + .IsRequired() + .HasColumnType("nvarchar(max)") + .HasComment("自定义计算问题"); + + b.Property("ClinicalCalculateMarkEnum") + .HasColumnType("int") + .HasComment("自定义计算标记"); + + b.Property("ClinicalOptionTypeEnum") + .HasColumnType("int") + .HasComment("临床数据选项类型(无,自定义)"); + + b.Property("ClinicalTableQuestionMarkEnum") + .HasColumnType("int") + .HasComment("问题标识"); + + b.Property("ClinicalTableQuestionType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("临床问题类型(分组,单选。)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DefaultValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("默认值"); + + b.Property("DictionaryCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("字典Code"); + + b.Property("DigitPlaces") + .HasColumnType("int") + .HasComment("小数点位数"); + + b.Property("IsRequired") + .HasColumnType("int") + .HasComment("是否必填"); + + b.Property("MaxAnswerLength") + .HasColumnType("int") + .HasComment("最大长度"); + + b.Property("QuestionEnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题英文名称"); + + b.Property("QuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("外层问题Id"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("问题名称"); + + b.Property("RelevanceId") + .HasColumnType("uniqueidentifier") + .HasComment("关联ID"); + + b.Property("RelevanceValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("关联Value"); + + b.Property("ShowOrder") + .HasColumnType("int") + .HasComment("排序"); + + b.Property("SystemTableQuestionId") + .HasColumnType("uniqueidentifier") + .HasComment("系统表格问题Id"); + + b.Property("TrialClinicalId") + .HasColumnType("uniqueidentifier") + .HasComment("项目临床数据Id"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("自定义选项"); + + b.Property("Unit") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("单位"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialClinicalTableQuestion", t => + { + t.HasComment("项目临床表格问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdditionalAssessmentType") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("IsSelected") + .HasColumnType("bit"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionAdditionalAssessmentType", t => + { + t.HasComment("项目 - 项目标准附加评估配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionDictionaryCode"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialCriterionId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialCriterionKeyFile", t => + { + t.HasComment("项目标准阅片关键点文件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CalledAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsTestOK") + .HasColumnType("bit"); + + b.Property("LatestTestTime") + .HasColumnType("datetime2"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Port") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDicomAE", t => + { + t.HasComment("项目 - 项目DicomAE"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("KeyName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDictionary", t => + { + t.HasComment("项目 - 项目字典关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("ConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SignFirstViewTime") + .HasColumnType("datetime2"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocConfirmedIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NeedConfirmUserTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialDocNeedConfirmedUserType", t => + { + t.HasComment("项目 - 项目文档需要签署的用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentStaffTrainDays") + .HasColumnType("int"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("需要确认的项目用户 通过TrialId 关联 用中间表过滤"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsPublish") + .HasColumnType("bit"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NewStaffTrainDays") + .HasColumnType("int"); + + b.Property("Path") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PublishDate") + .HasColumnType("datetime2"); + + b.Property("SignViewMinimumMinutes") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocument", t => + { + t.HasComment("项目 - 项目文档"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OffLine") + .HasColumnType("bit"); + + b.Property("TrialDocumentId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialDocumentAttachment", t => + { + t.HasComment("项目签署文档附件"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailBlackUser", t => + { + t.HasComment("项目 - 项目邮件用户黑名单"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AttachCNPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachNameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AttachPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("AuthorizationCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BusinessLevelEnum") + .HasColumnType("int"); + + b.Property("BusinessModuleEnum") + .HasColumnType("int"); + + b.Property("BusinessScenarioEnum") + .HasColumnType("int"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionTypeEnum") + .HasColumnType("int") + .HasComment("后续删除,需要维护数据"); + + b.Property("CriterionTypeList") + .HasColumnType("nvarchar(max)") + .HasComment("邮件配置的多个标准"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailCron") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailDelaySeconds") + .HasColumnType("int") + .HasComment("邮件延时秒数,比如一个事件触发,延迟多少s后才发邮件"); + + b.Property("EmailHtmlContent") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailHtmlContentCN") + .HasColumnType("nvarchar(max)"); + + b.Property("EmailTopic") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTopicCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("EmailTypeEnum") + .HasColumnType("int"); + + b.Property("EmailUrgentEnum") + .HasColumnType("int"); + + b.Property("FromEmail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FromName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsAutoSend") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsDistinguishCriteria") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsReturnRequired") + .HasColumnType("bit"); + + b.Property("SMTPServerAddress") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SMTPServerPort") + .HasColumnType("int"); + + b.Property("SysEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier") + .HasComment("下次版本删除"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialEmailNoticeConfig", t => + { + t.HasComment("项目 - 项目发送邮件配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailUserType") + .HasColumnType("int"); + + b.Property("TrialEmailNoticeConfigId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserType") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialEmailNoticeUser", t => + { + t.HasComment("项目 - 项目邮件收发配置用户类型"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CriterionType") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("EvaluationContent") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExperienceDataType") + .HasColumnType("int"); + + b.Property("IndicationEnum") + .HasColumnType("int"); + + b.Property("IndicationTypeId") + .HasColumnType("uniqueidentifier"); + + b.Property("OtherCriterion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherStages") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PhaseId") + .HasColumnType("uniqueidentifier"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitReadingCount") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExperience", t => + { + t.HasComment("医生 - 项目临床经历"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EvaluationCriteriaId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialExperienceId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialExperienceCriteria", t => + { + t.HasComment("医生 - 项目临床经历评估标准"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ConfirmTime") + .HasColumnType("datetime2"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ExpireTime") + .HasColumnType("datetime2"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int") + .HasComment("邀请状态"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("IsSystemUser") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialExternalUser", t => + { + t.HasComment("项目 - 项目外部人员"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFile", t => + { + t.HasComment("项目文件 - 文件表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ArchiveTypeEnum") + .HasColumnType("int") + .HasComment("报告、文档、记录"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("文件Id"); + + b.Property("FirstFinalDate") + .HasColumnType("date") + .HasComment("首次定稿日期"); + + b.Property("IsConfirmRecord") + .HasColumnType("bit") + .HasComment("是否确认收入项"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsSelfDefine") + .HasColumnType("bit") + .HasComment("是否自定义"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NameCN") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("SubIdentificationEnum") + .HasColumnType("int") + .HasComment("子类标识,是取那个表的数据"); + + b.Property("SysFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联系统文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFileType", t => + { + t.HasComment("项目文件 - 文件类型表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史记录"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PDFFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿PDF"); + + b.Property("SignFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("签名页"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Version") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("WordFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("定稿Word"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialFinalRecord", t => + { + t.HasComment("项目文件 - 定稿记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileFormat") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FilePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("FileSize") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialHistoryRecordFile"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("JoinTime") + .HasColumnType("datetime2"); + + b.Property("RemoveTime") + .HasColumnType("datetime2"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialIdentityUser", t => + { + t.HasComment("项目用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DicomStudyCount") + .HasColumnType("int"); + + b.Property("DownloadEndTime") + .HasColumnType("datetime2"); + + b.Property("DownloadStartTime") + .HasColumnType("datetime2"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ImageCount") + .HasColumnType("int"); + + b.Property("ImageSize") + .HasColumnType("bigint"); + + b.Property("ImageType") + .HasColumnType("int"); + + b.Property("IsSuccess") + .HasColumnType("bit"); + + b.Property("NoneDicomStudyCount") + .HasColumnType("int"); + + b.Property("SubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("一致性分析的就显示一致性分析的中心"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialImageDownload", t => + { + t.HasComment("项目 - 影像下载监控"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialNormalRecord", t => + { + t.HasComment("项目文件 - 一般文件记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AdjustmentMultiple") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsNewTrial") + .HasColumnType("bit") + .HasComment("是否有 为新项目"); + + b.Property("SowName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SowPath") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialAdditional") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialPaymentPrice", t => + { + t.HasComment("医生计费 - 项目支付配置"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsConfirm") + .HasColumnType("bit"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("IsRequired") + .HasColumnType("bit"); + + b.Property("LanguageType") + .HasColumnType("int") + .HasComment("语言类型"); + + b.Property("ParentId") + .HasColumnType("uniqueidentifier"); + + b.Property("ParentTriggerValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("下拉框、文本、单选、多选"); + + b.Property("TypeValue") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestion", t => + { + t.HasComment("项目 - 质控问题"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Answer") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CurrentQCEnum") + .HasColumnType("int") + .HasComment("1代表第一个人QC数据 2 代表第二个人QC数据"); + + b.Property("QCProcessEnum") + .HasColumnType("int"); + + b.Property("SecondReviewTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialQCQuestionConfigureId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialQCQuestionAnswer", t => + { + t.HasComment("项目 - 质控问题表单答案"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("AdjudicationIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Global") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("RefresherTraining") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Timepoint") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn24H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TimepointIn48H") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("Training") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialRevenuesPrice", t => + { + t.HasComment("医生计费 - 项目工作量收入单价"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPriceVerification", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("bit"); + + b.Property("AdjudicationIn24H") + .HasColumnType("bit"); + + b.Property("AdjudicationIn48H") + .HasColumnType("bit"); + + b.Property("Downtime") + .HasColumnType("bit"); + + b.Property("Global") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("bit"); + + b.Property("ReviewerId") + .HasColumnType("uniqueidentifier"); + + b.Property("Timepoint") + .HasColumnType("bit"); + + b.Property("TimepointIn24H") + .HasColumnType("bit"); + + b.Property("TimepointIn48H") + .HasColumnType("bit"); + + b.Property("Training") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkLoadDate") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TrialRevenuesPriceVerification", t => + { + t.HasComment("医生计费 - 项目收入价格验证"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCompleted") + .HasColumnType("bit"); + + b.Property("SignCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SignCodeId") + .HasColumnType("uniqueidentifier"); + + b.Property("SignText") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSign", t => + { + t.HasComment("项目 - 项目操作签名表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EnabledTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("SiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteAliasName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialSiteName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSite", t => + { + t.HasComment("项目 - 项目中心表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CallingAE") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("Port") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteDicomAE", t => + { + t.HasComment("项目 - 项目中心DicomAE表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BodyCoilChannelCount") + .HasColumnType("int") + .HasComment("体部线圈通道数 (≥16 或 <16)"); + + b.Property("CanFullyExportPdfParameterMapsAndRawDicom") + .HasColumnType("bit") + .HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EquipmentTypeEnum") + .HasColumnType("int") + .HasComment("扫描设备-New"); + + b.Property("EquipmentTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("扫描设备-废弃"); + + b.Property("HasDedicatedPdfFatQuantificationSequence") + .HasColumnType("bit") + .HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + b.Property("HasT2R2Correction") + .HasColumnType("bit") + .HasComment("是否包含 T2/R2 校正(用于铁沉积校正)"); + + b.Property("MagneticFieldStrengthType") + .HasColumnType("int") + .HasComment("磁场强度 (1.5T / 3.0T)"); + + b.Property("ManufacturerName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备厂商其他补充"); + + b.Property("ManufacturerType") + .HasColumnType("int") + .HasComment("扫描设备厂商"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherEquipmentType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OtherSequenceSpecification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备参数"); + + b.Property("PdfFatQuantificationSequenceType") + .HasColumnType("int") + .HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + + b.Property("ScannerType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备型号"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteEquipmentSurvey", t => + { + t.HasComment("项目 - 项目中心调研设备表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AssignFixedTechnologists") + .HasColumnType("bit") + .HasComment("保持 1-2 名固定技师"); + + b.Property("AverageEngravingCycle") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("EfficacyEvaluatorType") + .HasColumnType("int"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ISStrictManualBurnFlag") + .HasColumnType("bit") + .HasComment("是否严格按照影像手册参数完成刻盘"); + + b.Property("IsAuthorizeRadiologistsParticipate") + .HasColumnType("bit") + .HasComment("是否授权影像科老师参与"); + + b.Property("IsConfirmImagingTechnologist") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsFollowStudyParameters") + .HasColumnType("bit"); + + b.Property("IsRoutineMRIPDEE") + .HasColumnType("bit") + .HasComment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目"); + + b.Property("LatestBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("MRIPDFFLeadTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDFF 预约等待时长"); + + b.Property("MRIPDFFOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDEE 其他"); + + b.Property("MRIPDFFScanTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDFF 单次检查时长"); + + b.Property("NotConfirmReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotFollowReson") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NotStrictManualBurnFlagReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不严格按照影像手册参数完成刻盘原因"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("PreliminaryTime") + .HasColumnType("datetime2"); + + b.Property("PreliminaryUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ReviewerTime") + .HasColumnType("datetime2"); + + b.Property("ReviewerUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteSurvey", t => + { + t.HasComment("项目 - 项目中心调研表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUser", t => + { + t.HasComment("项目 - 项目中心用户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("InviteState") + .HasColumnType("int"); + + b.Property("IsGenerateAccount") + .HasColumnType("bit"); + + b.Property("IsGenerateSuccess") + .HasColumnType("bit"); + + b.Property("IsHistoryUser") + .HasColumnType("bit"); + + b.Property("IsHistoryUserDeleted") + .HasColumnType("bit"); + + b.Property("IsHistoryUserOriginDeleted") + .HasColumnType("bit"); + + b.Property("IsJoin") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OrganizationName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Phone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("SystemUserId") + .HasColumnType("uniqueidentifier") + .HasComment("IdentityUser 表的用户Id"); + + b.Property("TrialRoleCode") + .HasColumnType("int"); + + b.Property("TrialSiteSurveyId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialSiteUserSurvey", t => + { + t.HasComment("项目 - 项目中心调研用户表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("NowState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OriginState") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStateChange", t => + { + t.HasComment("项目 - 项目状态变更记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Memo") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("OptUserType") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialStatus") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialStatus", t => + { + t.HasComment("项目 - 入组流程记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("历史文件"); + + b.Property("IsAuthorizedView") + .HasColumnType("bit") + .HasComment("是否授权查看"); + + b.Property("Note") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("TrialFileRecordId") + .HasColumnType("uniqueidentifier") + .HasComment("关联具体的文件记录,记录里面有大小,格式,名称"); + + b.Property("TrialFileTypeId") + .HasColumnType("uniqueidentifier") + .HasComment("关联项目文件类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrianingCount") + .HasColumnType("int"); + + b.Property("TrianingDate") + .HasColumnType("date"); + + b.Property("TrianingState") + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("培训效果"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialTrianingRecord", t => + { + t.HasComment("项目文件 - 培训记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("这里实际是UserRoleId"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialUser", t => + { + t.HasComment("项目用户角色表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VirturalSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("TrialVirtualSiteCodeUpdate", t => + { + t.HasComment("项目 - 虚拟中心编号更新记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_IRECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_IRECIST1Point1", t => + { + t.HasComment("IRECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1", t => + { + t.HasComment("RECIST1Point1肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TumorAssessment_RECIST1Point1BM", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("NewLesion") + .HasColumnType("int") + .HasComment("新病灶"); + + b.Property("NonTargetLesions") + .HasColumnType("int") + .HasComment("非靶病灶"); + + b.Property("OverallEfficacy") + .HasColumnType("int") + .HasComment("整体疗效"); + + b.Property("TargetLesion") + .HasColumnType("int") + .HasComment("靶病灶"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TumorAssessment_RECIST1Point1BM", t => + { + t.HasComment("RECIST1Point1BM肿瘤评估(系统标准)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndTime") + .HasColumnType("datetime2"); + + b.Property("FileUploadRecordId") + .HasColumnType("uniqueidentifier"); + + b.Property("JobState") + .HasColumnType("int"); + + b.Property("Msg") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UploadFileSyncRecord", t => + { + t.HasComment("同步任务记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EffectiveDate") + .HasColumnType("datetime2"); + + b.Property("FileContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileEnContent") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FileVersion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsCurrentVersion") + .HasColumnType("bit"); + + b.Property("UpdateDate") + .HasColumnType("datetime2"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserAgreementTypeEnum") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserAgreement", t => + { + t.HasComment("后台 - 用户协议和隐私采集"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("QuestionDescription") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("QuestionType") + .HasColumnType("int"); + + b.Property("Reason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ScreenshotListStr") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("State") + .HasColumnType("int"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialSiteId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserFeedBack", t => + { + t.HasComment("后台 - 用户反馈"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionIdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ActionUserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("ActionUserType") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IP") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IPRegion") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsIgnoreUncommonly") + .HasColumnType("bit") + .HasComment("是否忽略异地登录"); + + b.Property("IsLoginUncommonly") + .HasColumnType("bit") + .HasComment("异地登录"); + + b.Property("JsonObj") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("LoginFaildName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginPassword") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("LoginUserId") + .HasColumnType("uniqueidentifier") + .HasComment("后续删除"); + + b.Property("OptType") + .HasColumnType("int"); + + b.Property("OptUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的人,自己操作的就是自己--后续删除"); + + b.Property("TargetIdentityUserId") + .HasColumnType("uniqueidentifier") + .HasComment("被操作的对象 admin 修改张三信息 张三是被操作对象"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserLog", t => + { + t.HasComment("后台 - 用户账户操作日志"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("PassWord") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("密码"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier") + .HasComment("用户Id"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserPassWordLog", t => + { + t.HasComment("后台 - 用户修改密码"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AutoCutNextTask") + .HasColumnType("bit") + .HasComment("自动切换下一个任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier") + .HasComment("医生生成账号后,会有值"); + + b.Property("EMail") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IdentityUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsDoubleScreen") + .HasColumnType("bit"); + + b.Property("IsUserRoleDisabled") + .HasColumnType("bit"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("User", t => + { + t.HasComment("后台 - 系统账户角色关系表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsEnable") + .HasColumnType("bit"); + + b.Property("Order") + .HasColumnType("int"); + + b.Property("PermissionStr") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeEnum") + .HasColumnType("int"); + + b.Property("UserTypeName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserTypeShortName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserType", t => + { + t.HasComment("后台 - 系统用户类型 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DictionaryId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeGroup", t => + { + t.HasComment("后台 - 用户类型组(需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("MenuId") + .HasColumnType("uniqueidentifier"); + + b.Property("UserTypeId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("UserTypeMenu", t => + { + t.HasComment("后台 - 系统用户类型菜单中间关系表 (需要同步)"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsPitchOn") + .HasColumnType("bit") + .HasComment("是否为默认"); + + b.Property("ShowOrder") + .HasColumnType("int"); + + b.Property("TemplateName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WL") + .HasColumnType("int"); + + b.Property("WW") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("UserWLTemplate", t => + { + t.HasComment("用户配置 - WL模板"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("EndDate") + .HasColumnType("datetime2"); + + b.Property("StartDate") + .HasColumnType("datetime2"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("Vacation", t => + { + t.HasComment("医生 - 假期安排"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Code") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("验证码"); + + b.Property("CodeType") + .HasColumnType("int") + .HasComment("什么类型的验证码 邮箱|手机"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("EmailOrPhone") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("发送的邮箱或者手机"); + + b.Property("ExpirationTime") + .HasColumnType("datetime2") + .HasComment("过期时间"); + + b.Property("HasSend") + .HasColumnType("bit"); + + b.Property("UserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VerificationCode", t => + { + t.HasComment("后台 - 验证码记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("InconsistentCount") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStat", t => + { + t.HasComment("项目配置 - 访视计划调整不一致数量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("HistoryWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsDicomStudy") + .HasColumnType("bit"); + + b.Property("IsOverWindowNowNotOverWindow") + .HasColumnType("bit"); + + b.Property("Modality") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("NowWindow") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StudyId") + .HasColumnType("uniqueidentifier"); + + b.Property("StudyTime") + .HasColumnType("datetime2"); + + b.Property("SubjectVisitId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitPlanInfluenceStatId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitPlanInfluenceStudy", t => + { + t.HasComment("项目配置 - 访视计划调整影像检查"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("BlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeleteUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DeletedTime") + .HasColumnType("datetime2"); + + b.Property("Description") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("IsBaseLine") + .HasColumnType("bit"); + + b.Property("IsConfirmed") + .HasColumnType("bit"); + + b.Property("IsDeleted") + .HasColumnType("bit"); + + b.Property("IsHaveFirstConfirmed") + .HasColumnType("bit"); + + b.Property("NeedGlobal") + .HasColumnType("bit"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitDay") + .HasColumnType("int"); + + b.Property("VisitName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("VisitNum") + .HasPrecision(18, 1) + .HasColumnType("decimal(18,1)"); + + b.Property("VisitWindowLeft") + .HasColumnType("int"); + + b.Property("VisitWindowRight") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitStage", t => + { + t.HasComment("项目配置 - 访视记录"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("AllocateTime") + .HasColumnType("datetime2") + .HasComment("分配时间"); + + b.Property("ArmEnum") + .HasColumnType("int") + .HasComment("0 代表 单重阅片 产生的任务 否则就是双重 任务 1 任务 2"); + + b.Property("BeforeConvertedTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("转换之前的任务Id(转化的任务才有该值)"); + + b.Property("BlindSubjectCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("BlindTrialSiteCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("Code") + .HasColumnType("int"); + + b.Property("ConsistentAnalysisOriginalTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("针对产生的一致性任务而言,这个字段存储的是原始任务"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("DoctorUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("ExpetidEmailNoticeTime") + .HasColumnType("datetime2") + .HasComment("通知IR加急阅片时间"); + + b.Property("FirstReadingTime") + .HasColumnType("datetime2") + .HasComment("首次阅片时间"); + + b.Property("ImageStudyState") + .HasColumnType("int"); + + b.Property("IsAnalysisCreate") + .HasColumnType("bit") + .HasComment("是否是一致性分析产生"); + + b.Property("IsAnalysisDiffToOriginalData") + .HasColumnType("bit") + .HasComment("阅片结果是否和原数据有差异"); + + b.Property("IsCanEditUrgentState") + .HasColumnType("bit") + .HasComment("是否和编辑加急状态"); + + b.Property("IsChangeTumorEvaluate") + .HasColumnType("bit") + .HasComment("是否修改了整体肿瘤评估"); + + b.Property("IsClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据是否签名"); + + b.Property("IsCopyLesionAnswer") + .HasColumnType("bit"); + + b.Property("IsFrontTaskNeedSignButNotSign") + .HasColumnType("bit") + .HasComment("前序任务需要签名 但是未签名"); + + b.Property("IsGlobalHaveUpdate") + .HasColumnType("bit") + .HasComment("全局是否有更新"); + + b.Property("IsGroupDiffArm1") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm1是否有差异"); + + b.Property("IsGroupDiffArm2") + .HasColumnType("bit") + .HasComment("组件一致性和原Arm2是否有差异"); + + b.Property("IsHistoryConvertedTask") + .HasColumnType("bit") + .HasComment("重阅重置任务的 标注是转化之前的 还是转化之后的"); + + b.Property("IsNeedClinicalDataSign") + .HasColumnType("bit") + .HasComment("临床数据"); + + b.Property("IsPMSetBack") + .HasColumnType("bit") + .HasComment("PM 对该任务进行了回退 影响的任务不设置"); + + b.Property("IsReReadingCreate") + .HasColumnType("bit") + .HasComment("是否是重阅产生的,方便过滤数据"); + + b.Property("IsReadClinicalData") + .HasColumnType("bit") + .HasComment("IR是否阅读临床数据"); + + b.Property("IsSelfAnalysis") + .HasColumnType("bit") + .HasComment("是否是自身一致性"); + + b.Property("IsUrgent") + .HasColumnType("bit"); + + b.Property("IsViewStudyPart") + .HasColumnType("bit"); + + b.Property("JudgeResultImagePath") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)") + .HasComment("裁判结果的图片路径"); + + b.Property("JudgeResultRemark") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("裁判结果的备注"); + + b.Property("JudgeResultTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在裁判任务上记录 裁判结果的任务ID(访视或者全局)"); + + b.Property("JudgeVisitTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("在访视或者全局任务上记录 裁判任务的Id"); + + b.Property("PMBackReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("退回原因"); + + b.Property("PastResultTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("既往任务Id 不包括自己"); + + b.Property("RandomOrder") + .HasColumnType("int") + .HasComment("完全随机阅片号"); + + b.Property("ReReadingApplyState") + .HasColumnType("int") + .HasComment("重阅状态"); + + b.Property("ReadingCategory") + .HasColumnType("int") + .HasComment("任务类型"); + + b.Property("ReadingTaskState") + .HasColumnType("int") + .HasComment("任务阅片状态"); + + b.Property("RelatedVisitTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("关联的访视任务ID (当前任务是访视任务的话会有自己)"); + + b.Property("ReportRelatedTaskIds") + .IsRequired() + .HasMaxLength(2000) + .HasColumnType("nvarchar(2000)") + .HasComment("报告任务关系 包含冻结"); + + b.Property("SignTime") + .HasColumnType("datetime2") + .HasComment("签名时间"); + + b.Property("SouceReadModuleId") + .HasColumnType("uniqueidentifier"); + + b.Property("SourceSubjectVisitId") + .HasColumnType("uniqueidentifier") + .HasComment("任务来源访视Id 方便回更访视读片状态"); + + b.Property("SubjectId") + .HasColumnType("uniqueidentifier"); + + b.Property("SuggesteFinishedTime") + .HasColumnType("datetime2"); + + b.Property("TaskAllocationState") + .HasColumnType("int") + .HasComment("分配状态"); + + b.Property("TaskBlindName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskCode") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("TaskState") + .HasColumnType("int"); + + b.Property("TaskUrgentRemake") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("任务加急类型"); + + b.Property("TaskUrgentType") + .HasColumnType("int") + .HasComment("加急类型"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("TrialReadingCriterionId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("VisitTaskNum") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)") + .HasComment("随访任务号 取访视的号 计划外是 访视+0.1 裁判任务在访视任务上+0.02 全局任务在截止访视号上+0.03 肿瘤0.06"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTask", t => + { + t.HasComment("项目阅片 - 阅片任务表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("IsCopyFollowForms") + .HasColumnType("bit") + .HasComment("仅仅包括全局和访视"); + + b.Property("IsCopyOrigenalForms") + .HasColumnType("bit"); + + b.Property("NewReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅申请 产生的新任务Id"); + + b.Property("OriginalReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("重阅原始任务Id 重阅会产生新的任务"); + + b.Property("RequestReReadingConfirmUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RequestReReadingReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingRejectReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("RequestReReadingResultEnum") + .HasColumnType("int"); + + b.Property("RequestReReadingTime") + .HasColumnType("datetime2"); + + b.Property("RequestReReadingType") + .HasColumnType("int") + .HasComment("申请回退类型"); + + b.Property("RequestReReadingUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("RootReReadingTaskId") + .HasColumnType("uniqueidentifier") + .HasComment("产生重阅的根任务Id"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VisitTaskReReading", t => + { + t.HasComment("重阅申请流程记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("Max") + .HasColumnType("int"); + + b.Property("Min") + .HasColumnType("int"); + + b.Property("Price") + .HasPrecision(18, 2) + .HasColumnType("decimal(18,2)"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("VolumeReward", t => + { + t.HasComment("医生计费 - 奖励"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("Adjudication") + .HasColumnType("int"); + + b.Property("AdjudicationIn24H") + .HasColumnType("int"); + + b.Property("AdjudicationIn48H") + .HasColumnType("int"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateUserType") + .HasColumnType("int"); + + b.Property("DataFrom") + .HasColumnType("int"); + + b.Property("DoctorId") + .HasColumnType("uniqueidentifier"); + + b.Property("Downtime") + .HasColumnType("int"); + + b.Property("Global") + .HasColumnType("int"); + + b.Property("IsLock") + .HasColumnType("bit"); + + b.Property("RefresherTraining") + .HasColumnType("int"); + + b.Property("Timepoint") + .HasColumnType("int"); + + b.Property("TimepointIn24H") + .HasColumnType("int"); + + b.Property("TimepointIn48H") + .HasColumnType("int"); + + b.Property("Training") + .HasColumnType("int"); + + b.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b.Property("UpdateTime") + .HasColumnType("datetime2"); + + b.Property("UpdateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("WorkTime") + .HasColumnType("datetime2"); + + b.Property("YearMonth") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("DoctorWorkload", t => + { + t.HasComment("医生计费 - 工作量记录表"); + }); + }); + + modelBuilder.Entity("IRaCIS.Core.Infra.EFCore.TestLength", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("DateTimeList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b.Property("StringList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestDate") + .HasColumnType("date"); + + b.Property("TestEnumList") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("nvarchar(1000)"); + + b.Property("TestJsonObjectLsit") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.ToTable("TestLength"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Attachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("AttachmentList") + .HasForeignKey("DoctorId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "MainAuditDocument") + .WithMany("AuditDocumentOldVersionList") + .HasForeignKey("MainFileId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("MainAuditDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocumentClosure", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Ancestor") + .WithMany("DescendantList") + .HasForeignKey("AncestorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "Descendant") + .WithMany("AncestorList") + .HasForeignKey("DescendantId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Ancestor"); + + b.Navigation("Descendant"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany("AuditRecordIdentityUserList") + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("AuditRecordList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecordPermission", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.AuditDocument", "AuditDocument") + .WithMany() + .HasForeignKey("AuditDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.AuditRecord", "AuditRecord") + .WithMany() + .HasForeignKey("AuditRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AuditDocument"); + + b.Navigation("AuditRecord"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CRO", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CheckChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("CheckChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataSystemSet", "ClinicalDataSystemSet") + .WithMany() + .HasForeignKey("SystemClinicalDataSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalDataTrialSetList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataSystemSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalForm", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ClinicalFormList") + .HasForeignKey("ReadingId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalFormList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalTableAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalAnswerRowInfo", "ClinicalAnswerRowInfo") + .WithMany() + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalAnswerRowInfo"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CommonDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionKeyFileRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.CriterionNidusTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DataInspection", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "DicomSerie") + .WithMany("DicomInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSerie"); + + b.Navigation("DicomStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("StudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("StudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("StudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ConfigDictionary") + .WithMany() + .HasForeignKey("ConfigTypeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Parent") + .WithMany("ChildList") + .HasForeignKey("ParentId"); + + b.Navigation("ConfigDictionary"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Department") + .WithMany() + .HasForeignKey("DepartmentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany("DoctorList") + .HasForeignKey("HospitalId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Rank") + .WithMany() + .HasForeignKey("RankId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Speciality") + .WithMany() + .HasForeignKey("SpecialityId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Department"); + + b.Navigation("Hospital"); + + b.Navigation("Position"); + + b.Navigation("Rank"); + + b.Navigation("Speciality"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorCriterionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("CriterionFileList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("DoctorDicRelationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DoctorSummarize", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Education", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailAttachmentLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("AttachmentList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "EmailNoticeConfig") + .WithMany("EmailNoticeUserTypeList") + .HasForeignKey("EmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailReSendLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailRecipientLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailLog", "EmailLog") + .WithMany("EmailRecipientLogList") + .HasForeignKey("EmailLogId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EmailLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("EnrollList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("EnrollList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("DoctorUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany() + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialStatusDetail", "TrialDetail") + .WithMany() + .HasForeignKey("TrialDetailId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + + b.Navigation("TrialDetail"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCategory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCategoryList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EnrollReadingCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithMany("EnrollReadingCriteriaList") + .HasForeignKey("EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Enroll"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EventStoreRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExchangeRate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ExploreRecommend", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FileUploadRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany() + .HasForeignKey("DicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("NoneDicomStudyId"); + + 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() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.FrontAuditConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany() + .HasForeignKey("SiteId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.InspectionFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Internationalization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.PublishLog", "PublishLog") + .WithMany() + .HasForeignKey("PublishLogId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishLog"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("NoneDicomStudyList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("NoneDicomStudyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "ImageMarkNoneDicomStudy") + .WithMany("ImageLabelNoneDicomFileList") + .HasForeignKey("ImageLabelNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany("NoneDicomFileList") + .HasForeignKey("NoneDicomStudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "OriginNoneDicomStudy") + .WithMany("TaskNoneDicomFileList") + .HasForeignKey("OriginNoneDicomStudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskNoneDicomStudyFileList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ImageMarkNoneDicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OriginNoneDicomStudy"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.OrganTrialInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.OrganInfo", "OrganInfo") + .WithMany() + .HasForeignKey("OrganInfoId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OrganInfo"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Payment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentAdjustment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PaymentDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Postgraduate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "HospitalEnt") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HospitalEnt"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousHistory", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousHistoryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousOther", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousOtherList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("PreviousPDFList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PreviousSurgery", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("PreviousSurgeryList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.PublishLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallenge", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("QCChallengeList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCChallengeDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCChallenge", "QCChallenge") + .WithMany("DialogList") + .HasForeignKey("QCChallengeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", null) + .WithMany("QCChallengeDialogList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("QCChallenge"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.QCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.QCQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.RankPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany() + .HasForeignKey("ReadingPeriodSetId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadModuleList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadModuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadModuleCriterionFrom", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalForm", "ClinicalForm") + .WithMany() + .HasForeignKey("ClinicalFormId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", null) + .WithMany("ReadModuleCriterionFromList") + .HasForeignKey("ReadModuleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalForm"); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("ClinicalDataList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ReadingClinicalDataList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingClinicalData", "ReadingClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany() + .HasForeignKey("ClinicalDataTrialSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("ReadingId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("ReadingConsistentClinicalDataList") + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("ReadModule"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalDataPDF", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingConsistentClinicalData", "ReadingConsistentClinicalData") + .WithMany("ReadingClinicalDataPDFList") + .HasForeignKey("ReadingConsistentClinicalDataId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingConsistentClinicalData"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCriterionPage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingCustomTag", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingGlobalTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "GlobalVisitTask") + .WithMany("GlobalVisitResultList") + .HasForeignKey("GlobalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("GlobalVisitTask"); + + b.Navigation("TrialReadingQuestion"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingImportFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingJudgeInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicalReviewDialog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany("ReadingMedicalReviewDialogList") + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskMedicalReview", "TaskMedicalReview") + .WithMany() + .HasForeignKey("TaskMedicalReviewId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TaskMedicalReview"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineSystemQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingMedicineTrialQuestion", "ParentQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", null) + .WithMany("ReadingNoneDicomMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoneDicomStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingNoneDicomMarkBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingNoneDicomMark", "ReadingNoneDicomMark") + .WithMany() + .HasForeignKey("NoneDicomMarkId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingNoneDicomMark"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingOncologyTaskInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OncologyVisitTask") + .WithMany("OncologyResultList") + .HasForeignKey("OncologyTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("OncologyVisitTask"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodPlan", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodPlanList") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSet", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitStage", "VisitStage") + .WithMany() + .HasForeignKey("VisitStageId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitStage"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingPeriodSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingPeriodSet", "ReadingPeriodSet") + .WithMany("ReadingPeriodSites") + .HasForeignKey("ReadingPeriodSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingPeriodSet"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialReadingCriterionList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ParentReadingQuestionSystem") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionSystem", "ReadingQuestionCriterionSystem") + .WithMany("ReadingQuestionSystemList") + .HasForeignKey("ReadingQuestionCriterionSystemId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "RelevanceReadingQuestionSystem") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionSystem"); + + b.Navigation("ReadingQuestionCriterionSystem"); + + b.Navigation("RelevanceReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "GroupInfo") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ParentReadingQuestionTrial") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingCriterionPage", "ReadingCriterionPage") + .WithMany("ReadingQuestionList") + .HasForeignKey("ReadingCriterionPageId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "ReadingQuestionCriterionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionCriterionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "RelevanceReadingQuestionTrial") + .WithMany() + .HasForeignKey("RelevanceId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupInfo"); + + b.Navigation("ParentReadingQuestionTrial"); + + b.Navigation("ReadingCriterionPage"); + + b.Navigation("ReadingQuestionCriterionTrial"); + + b.Navigation("RelevanceReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingSystemCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "FristAddTask") + .WithMany() + .HasForeignKey("FristAddTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomInstance", "Instance") + .WithMany("ReadingTableAnswerRowInfoList") + .HasForeignKey("InstanceId"); + + 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.DicomSeries", "DicomSeries") + .WithMany() + .HasForeignKey("SeriesId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "SplitRow") + .WithMany() + .HasForeignKey("SplitRowId"); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("LesionList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomSeries"); + + b.Navigation("FristAddTask"); + + b.Navigation("Instance"); + + b.Navigation("MergeRow"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("OrganInfo"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("SplitRow"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", "Lesion") + .WithMany("LesionAnswerList") + .HasForeignKey("RowId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "ReadingTableQuestionTrial") + .WithMany() + .HasForeignKey("TableQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Lesion"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("ReadingTableQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionSystem", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", "ReadingQuestionSystem") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionSystem"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingTableQuestionTrial", "DependParentQuestion") + .WithMany() + .HasForeignKey("DependParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany("ReadingTableQuestionTrialList") + .HasForeignKey("ReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DependParentQuestion"); + + b.Navigation("ReadingQuestionTrial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("ReadingQuestionTrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionAnswerList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskQuestionMark", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "ReadingQuestionTrial") + .WithMany() + .HasForeignKey("QuestionId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("ReadingTaskQuestionMarkList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ReadingQuestionTrial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTaskRelation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("TaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTrialCriterionDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("CriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Dictionary"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingUserConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ResearchPublication", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReviewerPayInformation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPImageUpload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPSeries", "SCPSeries") + .WithMany("SCPInstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("InstanceList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPSeries"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SCPStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SCPPatient", "Patient") + .WithMany("SCPStudyList") + .HasForeignKey("PatientId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Patient"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany("SegmentList") + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentBinding", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segment", "Segment") + .WithMany() + .HasForeignKey("SegmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segment"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Hospital", "Hospital") + .WithMany() + .HasForeignKey("HospitalId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Hospital"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Sponsor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.StudyMonitor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "DicomStudy") + .WithMany("DicomStudyMonitorList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.NoneDicomStudy", "NoneDicomStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany() + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DicomStudy"); + + b.Navigation("NoneDicomStudy"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "FinalSubjectVisit") + .WithMany() + .HasForeignKey("FinalSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "LatestSubjectVisit") + .WithMany() + .HasForeignKey("LatestSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FinalSubjectVisit"); + + b.Navigation("LatestSubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectAdditionalEvaluationResult", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectAdditionalEvaluationResult") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", "TrialReadingQuestion") + .WithMany() + .HasForeignKey("TrialReadingQuestionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingQuestion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCanceDoctor", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectCanceDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "subject") + .WithMany("SubjectCriteriaEvaluationList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + + b.Navigation("subject"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", null) + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectCriteriaEvaluationVisitFilterList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectCriteriaEvaluationVisitStudyFilter", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomSeries", "Series") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.DicomStudy", "Study") + .WithMany("SubjectCriteriaEvaluationVisitStudyFilterList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Series"); + + b.Navigation("Study"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectUser", "ReplacedSubjectUser") + .WithMany("EarlierSubjectUserList") + .HasForeignKey("ReplacedSubjectUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectDoctorList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectDoctorUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("ReplacedSubjectUser"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CurrentActionUser") + .WithMany() + .HasForeignKey("CurrentActionUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ForwardUser") + .WithMany() + .HasForeignKey("ForwardUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "OutPlanPreviousVisit") + .WithMany() + .HasForeignKey("OutPlanPreviousVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryAuditUser") + .WithMany() + .HasForeignKey("PreliminaryAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewAuditUser") + .WithMany() + .HasForeignKey("ReviewAuditUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "SubmitUser") + .WithMany() + .HasForeignKey("SubmitUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("SubjectVisitList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("CurrentActionUser"); + + b.Navigation("ForwardUser"); + + b.Navigation("OutPlanPreviousVisit"); + + b.Navigation("PreliminaryAuditUser"); + + b.Navigation("ReviewAuditUser"); + + b.Navigation("Subject"); + + b.Navigation("SubmitUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisitImageBackRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("SubjectVisitImageBackRecordList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SysFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemAnonymization", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemBasicData", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemBasicData", "Parent") + .WithMany() + .HasForeignKey("ParentId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser") + .WithMany("SystemDocConfirmedList") + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocConfirmedUserList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ConfirmUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("SystemDocNeedConfirmedUserTypeList") + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("SystemDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument") + .WithMany("SystemDocumentAttachmentList") + .HasForeignKey("SystemDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SystemDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PublishedUser") + .WithMany() + .HasForeignKey("PublishedUserId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("PublishedUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserRead", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserReadList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNoticeUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SystemNotice", null) + .WithMany("NoticeUserTypeList") + .HasForeignKey("SystemNoticeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "NoticeUserType") + .WithMany() + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NoticeUserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskAllocationRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Enroll", "Enroll") + .WithOne("TaskAllocationRule") + .HasForeignKey("IRaCIS.Core.Domain.Models.TaskAllocationRule", "EnrollId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("Enroll"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskConsistentRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskConsistentRuleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInfluence", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "InfluenceTask") + .WithMany() + .HasForeignKey("InfluenceTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalTask") + .WithMany("TaskInfluenceList") + .HasForeignKey("OriginalTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("InfluenceTask"); + + b.Navigation("OriginalTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskInstance", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskSeries", "TaskSeries") + .WithMany("InstanceList") + .HasForeignKey("SeriesId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("InstanceList") + .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"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskSeries"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "LatestReplyUser") + .WithMany() + .HasForeignKey("LatestReplyUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "MedicalManagerUser") + .WithMany() + .HasForeignKey("MedicalManagerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskMedicalReviewList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("LatestReplyUser"); + + b.Navigation("MedicalManagerUser"); + + b.Navigation("Trial"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReviewRule", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany() + .HasForeignKey("DoctorUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TaskStudy", "TaskStudy") + .WithMany("SeriesList") + .HasForeignKey("StudyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TaskStudy"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TaskStudyList") + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("TaskStudyList") + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.CRO", "CRO") + .WithMany() + .HasForeignKey("CROId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "IndicationType") + .WithMany() + .HasForeignKey("IndicationTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "QCQuestionConfirmedUser") + .WithMany() + .HasForeignKey("QCQuestionConfirmedUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "ReviewMode") + .WithMany() + .HasForeignKey("ReviewModeId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Sponsor", "Sponsor") + .WithMany() + .HasForeignKey("SponsorId"); + + b.OwnsMany("IRaCIS.Core.Domain.Models.StudyName", "StudyNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("EnName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("IsChoose") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("StudyNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.OwnsMany("IRaCIS.Core.Domain.Models.TrialObjectNameConfig", "TrialObjectNameList", b1 => + { + b1.Property("TrialId") + .HasColumnType("uniqueidentifier"); + + b1.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + b1.Property("IsDefault") + .HasColumnType("bit"); + + b1.Property("Name") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.Property("TrialName") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + + b1.HasKey("TrialId", "Id"); + + b1.ToTable("Trial"); + + b1.ToJson("TrialObjectNameList"); + + b1.WithOwner() + .HasForeignKey("TrialId"); + }); + + b.Navigation("CRO"); + + b.Navigation("CreateUserRole"); + + b.Navigation("IndicationType"); + + b.Navigation("Phase"); + + b.Navigation("QCQuestionConfirmedUser"); + + b.Navigation("ReviewMode"); + + b.Navigation("Sponsor"); + + b.Navigation("StudyNameList"); + + b.Navigation("TrialObjectNameList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialAuditShow", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialBodyPart", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialBodyPartList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalDataSetCriterion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "TrialClinicalDataSet") + .WithMany("TrialClinicalDataSetCriteriaList") + .HasForeignKey("TrialClinicalDataSetId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialClinicalDataSetCriterionList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialClinicalDataSet"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialClinicalQuestion", "GroupQuestin") + .WithMany() + .HasForeignKey("GroupId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", "ClinicalDataTrialSet") + .WithMany("TrialClinicalQuestionList") + .HasForeignKey("TrialClinicalId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("ClinicalDataTrialSet"); + + b.Navigation("CreateUserRole"); + + b.Navigation("GroupQuestin"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialClinicalTableQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionAdditionalAssessmentType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("TrialCriterionAdditionalAssessmentTypeList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionDictionaryCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialCriterionKeyFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("KeyFileList") + .HasForeignKey("TrialCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDictionary", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Dictionary") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDicList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Dictionary"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "User") + .WithMany() + .HasForeignKey("ConfirmUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocConfirmedUserList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("NeedConfirmUserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("NeedConfirmedUserTypeList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialDocument"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "FileType") + .WithMany() + .HasForeignKey("FileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialDocumentList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileType"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocumentAttachment", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument") + .WithMany("TrialDocumentAttachmentList") + .HasForeignKey("TrialDocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialDocument"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailBlackUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailBlackUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.EmailNoticeConfig", "SysEmailNoticeConfig") + .WithMany("TrialEmailNoticeConfigList") + .HasForeignKey("SysEmailNoticeConfigId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany() + .HasForeignKey("TrialReadingCriterionId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("SysEmailNoticeConfig"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", "TrialEmailNoticeConfig") + .WithMany("TrialEmailNoticeUserList") + .HasForeignKey("TrialEmailNoticeConfigId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("TrialEmailNoticeConfig"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Phase") + .WithMany() + .HasForeignKey("PhaseId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Phase"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperienceCriteria", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithMany("TrialExperienceCriteriaList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EvaluationCriteria") + .WithMany() + .HasForeignKey("EvaluationCriteriaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialExperience", null) + .WithMany("ExperienceCriteriaList") + .HasForeignKey("TrialExperienceId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("EvaluationCriteria"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExternalUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFileType", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "PDFFileRecord") + .WithMany() + .HasForeignKey("PDFFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "SignFileRecord") + .WithMany() + .HasForeignKey("SignFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "WordFileRecord") + .WithMany() + .HasForeignKey("WordFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("PDFFileRecord"); + + b.Navigation("SignFileRecord"); + + b.Navigation("WordFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialHistoryRecordFile", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFileType", "TrialFileType") + .WithMany() + .HasForeignKey("TrialFileTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFinalRecord", "TrialFinalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialNormalRecord", "TrialNormalRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialTrianingRecord", "TrialTrianingRecord") + .WithMany("TrialHistoryRecordFileList") + .HasForeignKey("TrialRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialFileType"); + + b.Navigation("TrialFinalRecord"); + + b.Navigation("TrialNormalRecord"); + + b.Navigation("TrialTrianingRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserTrialList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialIdentityUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialImageDownload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialPaymentPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "ParentQCQuestion") + .WithMany() + .HasForeignKey("ParentId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("ParentQCQuestion"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestionAnswer", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialQCQuestion", "TrialQCQuestionConfigure") + .WithMany("TrialQCQuestionAnswerList") + .HasForeignKey("TrialQCQuestionConfigureId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("TrialQCQuestionConfigure"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialRevenuesPrice", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSign", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Site", "Site") + .WithMany("TrialSiteList") + .HasForeignKey("SiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Site"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteDicomAE", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteDicomAEList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteEquipmentSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "EquipmentType") + .WithMany() + .HasForeignKey("EquipmentTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteEquipmentSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("EquipmentType"); + + b.Navigation("TrialSiteSurvey"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "PreliminaryUser") + .WithMany() + .HasForeignKey("PreliminaryUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ReviewerUser") + .WithMany() + .HasForeignKey("ReviewerUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("TrialSiteSurveyList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("PreliminaryUser"); + + b.Navigation("ReviewerUser"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialSiteUserList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany("CRCUserList") + .HasForeignKey("TrialSiteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteUserSurvey", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSiteSurvey", "TrialSiteSurvey") + .WithMany("TrialSiteUserSurveyList") + .HasForeignKey("TrialSiteSurveyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany() + .HasForeignKey("UserTypeId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TrialSiteSurvey"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStateChange", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialStateChangeList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialStatusDetail", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("ClinicalTrialProjectDetails") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "HistoryFileRecord") + .WithMany() + .HasForeignKey("HistoryFileRecordId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialFile", "TrialFileRecord") + .WithMany() + .HasForeignKey("TrialFileRecordId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("HistoryFileRecord"); + + b.Navigation("TrialFileRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialUserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialIdentityUser", "TrialUser") + .WithMany("TrialUserRoleList") + .HasForeignKey("TrialUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "UserRole") + .WithMany("UserRoleTrials") + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + + b.Navigation("TrialUser"); + + b.Navigation("UserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialVirtualSiteCodeUpdate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UploadFileSyncRecord", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.FileUploadRecord", "FileUploadRecord") + .WithMany() + .HasForeignKey("FileUploadRecordId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("FileUploadRecord"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserAgreement", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserFeedBack", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany() + .HasForeignKey("SubjectId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("UserFeedBackList") + .HasForeignKey("TrialId"); + + b.HasOne("IRaCIS.Core.Domain.Models.TrialSite", "TrialSite") + .WithMany() + .HasForeignKey("TrialSiteId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany("UserFeedBackList") + .HasForeignKey("VisitTaskId"); + + b.Navigation("CreateUserRole"); + + b.Navigation("Subject"); + + b.Navigation("SubjectVisit"); + + b.Navigation("Trial"); + + b.Navigation("TrialSite"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ActionIdentityUser") + .WithMany() + .HasForeignKey("ActionIdentityUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "TargetIdentityUser") + .WithMany() + .HasForeignKey("TargetIdentityUserId"); + + b.Navigation("ActionIdentityUser"); + + b.Navigation("CreateUserRole"); + + b.Navigation("TargetIdentityUser"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserPassWordLog", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", null) + .WithOne("UserRole") + .HasForeignKey("IRaCIS.Core.Domain.Models.UserRole", "DoctorId"); + + b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "IdentityUser") + .WithMany("UserRoleList") + .HasForeignKey("IdentityUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserTypeRole") + .WithMany("UserList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("IdentityUser"); + + b.Navigation("UserTypeRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeGroup", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Dictionary", "Group") + .WithMany() + .HasForeignKey("DictionaryId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeGroupList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Group"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserTypeMenu", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.Menu", "Menu") + .WithMany("UserTypeMenuList") + .HasForeignKey("MenuId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserType", "UserType") + .WithMany("UserTypeMenuList") + .HasForeignKey("UserTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Menu"); + + b.Navigation("UserType"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserWLTemplate", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Vacation", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Doctor", "Doctor") + .WithMany("VacationList") + .HasForeignKey("DoctorId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Doctor"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VerificationCode", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStudy", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") + .WithMany() + .HasForeignKey("SubjectVisitId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", "VisitPlanInfluenceStat") + .WithMany("InfluenceStudyList") + .HasForeignKey("VisitPlanInfluenceStatId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("SubjectVisit"); + + b.Navigation("VisitPlanInfluenceStat"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitStage", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany() + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "DoctorUser") + .WithMany("VisitTaskList") + .HasForeignKey("DoctorUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeResultTask") + .WithMany() + .HasForeignKey("JudgeResultTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "JudgeVisitTask") + .WithMany("JudgeVisitList") + .HasForeignKey("JudgeVisitTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadModule", "ReadModule") + .WithMany("ModuleTaskList") + .HasForeignKey("SouceReadModuleId"); + + b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SourceSubjectVisit") + .WithMany("VisitTaskList") + .HasForeignKey("SourceSubjectVisitId"); + + b.HasOne("IRaCIS.Core.Domain.Models.Subject", "Subject") + .WithMany("SubjectVisitTaskList") + .HasForeignKey("SubjectId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.ReadingQuestionCriterionTrial", "TrialReadingCriterion") + .WithMany("VisitTaskList") + .HasForeignKey("TrialReadingCriterionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("DoctorUser"); + + b.Navigation("JudgeResultTask"); + + b.Navigation("JudgeVisitTask"); + + b.Navigation("ReadModule"); + + b.Navigation("SourceSubjectVisit"); + + b.Navigation("Subject"); + + b.Navigation("Trial"); + + b.Navigation("TrialReadingCriterion"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTaskReReading", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "NewReReadingTask") + .WithMany() + .HasForeignKey("NewReReadingTaskId"); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "OriginalReReadingTask") + .WithMany() + .HasForeignKey("OriginalReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingConfirmUser") + .WithMany() + .HasForeignKey("RequestReReadingConfirmUserId"); + + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "RequestReReadingUser") + .WithMany() + .HasForeignKey("RequestReReadingUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "RootReReadingTask") + .WithMany() + .HasForeignKey("RootReReadingTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", "Trial") + .WithMany("VisitTaskReReadingList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("NewReReadingTask"); + + b.Navigation("OriginalReReadingTask"); + + b.Navigation("RequestReReadingConfirmUser"); + + b.Navigation("RequestReReadingUser"); + + b.Navigation("RootReReadingTask"); + + b.Navigation("Trial"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VolumeReward", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Workload", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Trial", null) + .WithMany("WorkloadList") + .HasForeignKey("TrialId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditDocument", b => + { + b.Navigation("AncestorList"); + + b.Navigation("AuditDocumentOldVersionList"); + + b.Navigation("DescendantList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.AuditRecord", b => + { + b.Navigation("AuditRecordIdentityUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ClinicalDataTrialSet", b => + { + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("TrialClinicalDataSetCriteriaList"); + + b.Navigation("TrialClinicalQuestionList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomInstance", b => + { + b.Navigation("ReadingTableAnswerRowInfoList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomSeries", b => + { + b.Navigation("DicomInstanceList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => + { + b.Navigation("DicomStudyMonitorList"); + + b.Navigation("InstanceList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("ReadingConsistentClinicalDataList"); + + b.Navigation("SeriesList"); + + b.Navigation("SubjectCriteriaEvaluationVisitStudyFilterList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Dictionary", b => + { + b.Navigation("ChildList"); + + b.Navigation("DoctorDicRelationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Doctor", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("CriterionFileList"); + + b.Navigation("DoctorDicRelationList"); + + b.Navigation("EnrollList"); + + b.Navigation("TrialExperienceCriteriaList"); + + b.Navigation("UserRole") + .IsRequired(); + + b.Navigation("VacationList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailLog", b => + { + b.Navigation("AttachmentList"); + + b.Navigation("EmailRecipientLogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.EmailNoticeConfig", b => + { + b.Navigation("EmailNoticeUserTypeList"); + + b.Navigation("TrialEmailNoticeConfigList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Enroll", b => + { + b.Navigation("EnrollReadingCategoryList"); + + b.Navigation("EnrollReadingCriteriaList"); + + b.Navigation("TaskAllocationRule") + .IsRequired(); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Hospital", b => + { + b.Navigation("DoctorList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b => + { + b.Navigation("AuditRecordList"); + + b.Navigation("SystemDocConfirmedList"); + + b.Navigation("UserRoleList"); + + b.Navigation("UserTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Menu", b => + { + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.NoneDicomStudy", b => + { + b.Navigation("ImageLabelNoneDicomFileList"); + + 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("KeyFileList"); + + b.Navigation("TrialClinicalDataSetCriterionList"); + + b.Navigation("TrialCriterionAdditionalAssessmentTypeList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionSystem", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingQuestionTrial", b => + { + b.Navigation("ReadingTableQuestionTrialList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ReadingTableAnswerRowInfo", b => + { + b.Navigation("LesionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPPatient", b => + { + b.Navigation("SCPStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPSeries", b => + { + b.Navigation("SCPInstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SCPStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Segmentation", b => + { + b.Navigation("SegmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Site", b => + { + b.Navigation("TrialSiteList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Subject", b => + { + b.Navigation("ClinicalDataList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectAdditionalEvaluationResult"); + + b.Navigation("SubjectCanceDoctorList"); + + b.Navigation("SubjectCriteriaEvaluationList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectDoctorList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("SubjectVisitTaskList"); + + b.Navigation("TaskStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectUser", b => + { + b.Navigation("EarlierSubjectUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SubjectVisit", b => + { + b.Navigation("CheckChallengeDialogList"); + + b.Navigation("ClinicalFormList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("PreviousHistoryList"); + + b.Navigation("PreviousOtherList"); + + b.Navigation("PreviousPDFList"); + + b.Navigation("PreviousSurgeryList"); + + b.Navigation("QCChallengeDialogList"); + + b.Navigation("QCChallengeList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectCriteriaEvaluationVisitFilterList"); + + b.Navigation("SubjectVisitImageBackRecordList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("TrialQCQuestionAnswerList"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("SystemDocConfirmedUserList"); + + b.Navigation("SystemDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemNotice", b => + { + b.Navigation("NoticeUserReadList"); + + b.Navigation("NoticeUserTypeList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskMedicalReview", b => + { + b.Navigation("ReadingMedicalReviewDialogList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskSeries", b => + { + b.Navigation("InstanceList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TaskStudy", b => + { + b.Navigation("InstanceList"); + + b.Navigation("SeriesList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.Trial", b => + { + b.Navigation("ClinicalDataTrialSetList"); + + b.Navigation("ClinicalTrialProjectDetails"); + + b.Navigation("EnrollList"); + + b.Navigation("NoneDicomStudyList"); + + b.Navigation("ReadModuleList"); + + b.Navigation("ReadingClinicalDataList"); + + b.Navigation("StudyList"); + + b.Navigation("SubjectDoctorUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TaskConsistentRuleList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TrialBodyPartList"); + + b.Navigation("TrialDicList"); + + b.Navigation("TrialDocumentList"); + + b.Navigation("TrialIdentityUserList"); + + b.Navigation("TrialReadingCriterionList"); + + b.Navigation("TrialSiteList"); + + b.Navigation("TrialSiteSurveyList"); + + b.Navigation("TrialSiteUserList"); + + b.Navigation("TrialStateChangeList"); + + b.Navigation("TrialUserRoleList"); + + b.Navigation("UserFeedBackList"); + + b.Navigation("VisitTaskList"); + + b.Navigation("VisitTaskReReadingList"); + + b.Navigation("WorkloadList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocument", b => + { + b.Navigation("NeedConfirmedUserTypeList"); + + b.Navigation("TrialDocConfirmedUserList"); + + b.Navigation("TrialDocumentAttachmentList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialEmailNoticeConfig", b => + { + b.Navigation("TrialEmailBlackUserList"); + + b.Navigation("TrialEmailNoticeUserList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialExperience", b => + { + b.Navigation("ExperienceCriteriaList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialFinalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialIdentityUser", b => + { + b.Navigation("TrialUserRoleList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialNormalRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialQCQuestion", b => + { + b.Navigation("TrialQCQuestionAnswerList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSite", b => + { + b.Navigation("CRCUserList"); + + b.Navigation("SubjectList"); + + b.Navigation("SubjectVisitList"); + + b.Navigation("TrialSiteDicomAEList"); + + b.Navigation("TrialSiteSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialSiteSurvey", b => + { + b.Navigation("TrialSiteEquipmentSurveyList"); + + b.Navigation("TrialSiteUserSurveyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialTrianingRecord", b => + { + b.Navigation("TrialHistoryRecordFileList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b => + { + b.Navigation("UserRoleTrials"); + + b.Navigation("VisitTaskList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserType", b => + { + b.Navigation("SystemDocNeedConfirmedUserTypeList"); + + b.Navigation("UserList"); + + b.Navigation("UserTypeGroupList"); + + b.Navigation("UserTypeMenuList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitPlanInfluenceStat", b => + { + b.Navigation("InfluenceStudyList"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.VisitTask", b => + { + b.Navigation("GlobalVisitResultList"); + + b.Navigation("JudgeVisitList"); + + b.Navigation("LesionList"); + + b.Navigation("OncologyResultList"); + + b.Navigation("ReadingNoneDicomMarkList"); + + b.Navigation("ReadingTaskQuestionAnswerList"); + + b.Navigation("ReadingTaskQuestionMarkList"); + + b.Navigation("TaskInfluenceList"); + + b.Navigation("TaskMedicalReviewList"); + + b.Navigation("TaskNoneDicomStudyFileList"); + + b.Navigation("TaskStudyList"); + + b.Navigation("UserFeedBackList"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/20260528084709_siteSurveyOther1.cs b/IRaCIS.Core.Infra.EFCore/Migrations/20260528084709_siteSurveyOther1.cs new file mode 100644 index 000000000..c97dba5e7 --- /dev/null +++ b/IRaCIS.Core.Infra.EFCore/Migrations/20260528084709_siteSurveyOther1.cs @@ -0,0 +1,42 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IRaCIS.Core.Infra.EFCore.Migrations +{ + /// + public partial class siteSurveyOther1 : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "NotStrictManualBurnFlagReason", + table: "TrialSiteSurvey", + type: "nvarchar(400)", + maxLength: 400, + nullable: false, + defaultValue: "", + comment: "不严格按照影像手册参数完成刻盘原因", + oldClrType: typeof(bool), + oldType: "bit", + oldNullable: true, + oldComment: "不严格按照影像手册参数完成刻盘原因"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "NotStrictManualBurnFlagReason", + table: "TrialSiteSurvey", + type: "bit", + nullable: true, + comment: "不严格按照影像手册参数完成刻盘原因", + oldClrType: typeof(string), + oldType: "nvarchar(400)", + oldMaxLength: 400, + oldComment: "不严格按照影像手册参数完成刻盘原因"); + } + } +} diff --git a/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs b/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs index 694b98c6f..29d38fa8a 100644 --- a/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs +++ b/IRaCIS.Core.Infra.EFCore/Migrations/IRaCISDBContextModelSnapshot.cs @@ -3682,6 +3682,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations .HasColumnType("nvarchar(400)") .UseCollation("Chinese_PRC_CS_AS"); + b.Property("UserWorkLanguage") + .HasColumnType("int"); + b.HasKey("Id"); SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); @@ -9493,12 +9496,18 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("DeletedTime") .HasColumnType("datetime2"); + b.Property("FileSize") + .HasColumnType("bigint"); + b.Property("IsDeleted") .HasColumnType("bit"); b.Property("IsSaved") .HasColumnType("bit"); + b.Property("SEGUpdateTime") + .HasColumnType("datetime2"); + b.Property("SEGUrl") .IsRequired() .HasColumnType("nvarchar(max)"); @@ -9550,6 +9559,55 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations }); }); + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.Property("Id") + .HasColumnType("uniqueidentifier"); + + b.Property("CreateTime") + .HasColumnType("datetime2"); + + b.Property("CreateUserId") + .HasColumnType("uniqueidentifier"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("SEGUrl") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentList") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("SegmentationId") + .HasColumnType("uniqueidentifier"); + + b.Property("SegmentationJson") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("StartTime") + .HasColumnType("datetime2"); + + b.Property("Version") + .HasColumnType("int"); + + b.HasKey("Id"); + + SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false); + + b.HasIndex("CreateTime"); + + SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime")); + + b.ToTable("SegmentationVersion", t => + { + t.HasComment("分割文件版本"); + }); + }); + modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => { b.Property("Id") @@ -11212,6 +11270,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("DeletedTime") .HasColumnType("datetime2"); + b.Property("DocLanguageType") + .HasColumnType("int"); + b.Property("DocUserSignType") .HasColumnType("int"); @@ -12581,6 +12642,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations .HasColumnType("bit") .HasComment("是否 提醒受试者编号规则"); + b.Property("IsOpenLostVistRead") + .HasColumnType("bit"); + b.Property("IsPACSConnect") .HasColumnType("bit"); @@ -12616,6 +12680,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("IsSubjectSexView") .HasColumnType("bit"); + b.Property("IsSupportQCDownloadImage") + .HasColumnType("bit"); + b.Property("IsTrialBasicLogicConfirmed") .HasColumnType("bit"); @@ -12644,6 +12711,14 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations .HasColumnType("nvarchar(400)") .HasComment("主研单位"); + b.Property("MaxDicomCode") + .HasColumnType("int") + .HasComment("最大的Dicom检查编号 整型"); + + b.Property("MaxNoneDicomCode") + .HasColumnType("int") + .HasComment("最大的NoneDicom检查编号 整型"); + b.Property("MessageFromClient") .IsRequired() .HasMaxLength(400) @@ -14813,6 +14888,11 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("Id") .HasColumnType("uniqueidentifier"); + b.Property("Country") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)"); + b.Property("CreateTime") .HasColumnType("datetime2"); @@ -14943,34 +15023,81 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("Id") .HasColumnType("uniqueidentifier"); + b.Property("BodyCoilChannelCount") + .HasColumnType("int") + .HasComment("体部线圈通道数 (≥16 或 <16)"); + + b.Property("CanFullyExportPdfParameterMapsAndRawDicom") + .HasColumnType("bit") + .HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据"); + b.Property("CreateTime") .HasColumnType("datetime2"); b.Property("CreateUserId") .HasColumnType("uniqueidentifier"); + b.Property("EquipmentTypeEnum") + .HasColumnType("int") + .HasComment("扫描设备-New"); + b.Property("EquipmentTypeId") - .HasColumnType("uniqueidentifier"); + .HasColumnType("uniqueidentifier") + .HasComment("扫描设备-废弃"); + + b.Property("HasDedicatedPdfFatQuantificationSequence") + .HasColumnType("bit") + .HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)"); + + b.Property("HasT2R2Correction") + .HasColumnType("bit") + .HasComment("是否包含 T2/R2 校正(用于铁沉积校正)"); + + b.Property("MagneticFieldStrengthType") + .HasColumnType("int") + .HasComment("磁场强度 (1.5T / 3.0T)"); b.Property("ManufacturerName") .IsRequired() .HasMaxLength(400) - .HasColumnType("nvarchar(400)"); + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备厂商其他补充"); + + b.Property("ManufacturerType") + .HasColumnType("int") + .HasComment("扫描设备厂商"); b.Property("Note") .IsRequired() .HasMaxLength(400) .HasColumnType("nvarchar(400)"); - b.Property("Parameters") + b.Property("OtherEquipmentType") .IsRequired() .HasMaxLength(400) .HasColumnType("nvarchar(400)"); + b.Property("OtherSequenceSpecification") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)"); + + b.Property("Parameters") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备参数"); + + b.Property("PdfFatQuantificationSequenceType") + .HasColumnType("int") + .HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)"); + b.Property("ScannerType") .IsRequired() .HasMaxLength(400) - .HasColumnType("nvarchar(400)"); + .HasColumnType("nvarchar(400)") + .HasComment("扫描设备型号"); b.Property("TrialSiteSurveyId") .HasColumnType("uniqueidentifier"); @@ -15000,6 +15127,10 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("Id") .HasColumnType("uniqueidentifier"); + b.Property("AssignFixedTechnologists") + .HasColumnType("bit") + .HasComment("保持 1-2 名固定技师"); + b.Property("AverageEngravingCycle") .HasColumnType("int"); @@ -15023,6 +15154,14 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations .HasMaxLength(400) .HasColumnType("nvarchar(400)"); + b.Property("ISStrictManualBurnFlag") + .HasColumnType("bit") + .HasComment("是否严格按照影像手册参数完成刻盘"); + + b.Property("IsAuthorizeRadiologistsParticipate") + .HasColumnType("bit") + .HasComment("是否授权影像科老师参与"); + b.Property("IsConfirmImagingTechnologist") .HasColumnType("bit"); @@ -15032,11 +15171,33 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations b.Property("IsFollowStudyParameters") .HasColumnType("bit"); + b.Property("IsRoutineMRIPDEE") + .HasColumnType("bit") + .HasComment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目"); + b.Property("LatestBackReason") .IsRequired() .HasMaxLength(400) .HasColumnType("nvarchar(400)"); + b.Property("MRIPDFFLeadTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDFF 预约等待时长"); + + b.Property("MRIPDFFOther") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDEE 其他"); + + b.Property("MRIPDFFScanTime") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("MRI-PDFF 单次检查时长"); + b.Property("NotConfirmReson") .IsRequired() .HasMaxLength(400) @@ -15047,6 +15208,12 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations .HasMaxLength(400) .HasColumnType("nvarchar(400)"); + b.Property("NotStrictManualBurnFlagReason") + .IsRequired() + .HasMaxLength(400) + .HasColumnType("nvarchar(400)") + .HasComment("不严格按照影像手册参数完成刻盘原因"); + b.Property("Phone") .IsRequired() .HasMaxLength(400) @@ -19245,7 +19412,34 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations .OnDelete(DeleteBehavior.Cascade) .IsRequired(); + b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask") + .WithMany() + .HasForeignKey("VisitTaskId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + b.Navigation("CreateUserRole"); + + b.Navigation("VisitTask"); + }); + + modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b => + { + b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole") + .WithMany() + .HasForeignKey("CreateUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation") + .WithMany() + .HasForeignKey("SegmentationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CreateUserRole"); + + b.Navigation("Segmentation"); }); modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b => diff --git a/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs b/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs index 8e331a5a7..3a9b203c3 100644 --- a/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs +++ b/IRaCIS.Core.Infrastructure/_IRaCIS/_Config/_StaticData.cs @@ -192,8 +192,14 @@ public static class StaticData public const string Anonymize_AddIRCInfoFiled = "Anonymize_AddIRCInfoFiled"; } - - + /// + /// 中心国家 + /// + public static class SiteCountry + { + public const string CN = "China"; + public const string US = "United States"; + } diff --git a/IRaCIS.Core.Test/LiquidTemplate/EntityService.liquid b/IRaCIS.Core.Test/LiquidTemplate/EntityService.liquid index c371c2227..7a5a2df57 100644 --- a/IRaCIS.Core.Test/LiquidTemplate/EntityService.liquid +++ b/IRaCIS.Core.Test/LiquidTemplate/EntityService.liquid @@ -24,7 +24,14 @@ public class {{TableName}}Service(IRepository<{{TableName}}> {{LowercaseReposito { var {{LowercaseQueryableName}} ={{LowercaseRepositoryName}} - .ProjectTo<{{TableNameView}}>(_mapper.ConfigurationProvider); +{% for field in QueryListFieldList -%} + {% if field.CSharpType == "string" -%} + .WhereIf(!string.IsNullOrEmpty(inQuery.{{ field.FieldName }}), t => t.{{ field.FieldName }}.Contains(inQuery.{{ field.FieldName }})) + {%- elsif field.CSharpType != "DateTime" -%} + .WhereIf(inQuery.{{ field.FieldName }} != null, t => t.{{ field.FieldName }} == inQuery.{{ field.FieldName }}) + {%- endif %} +{% endfor -%} + .ProjectTo<{{TableNameView}}>(_mapper.ConfigurationProvider); var pageList= await {{LowercaseQueryableName}}.ToPagedListAsync(inQuery); @@ -37,7 +44,14 @@ public class {{TableName}}Service(IRepository<{{TableName}}> {{LowercaseReposito var {{LowercaseQueryableName}} ={{LowercaseRepositoryName}} - .ProjectTo<{{TableNameView}}>(_mapper.ConfigurationProvider); +{% for field in QueryListFieldList -%} + {% if field.CSharpType == "string" -%} + .WhereIf(!string.IsNullOrEmpty(inQuery.{{ field.FieldName }}), t => t.{{ field.FieldName }}.Contains(inQuery.{{ field.FieldName }})) + {%- elsif field.CSharpType != "DateTime" -%} + .WhereIf(inQuery.{{ field.FieldName }} != null, t => t.{{ field.FieldName }} == inQuery.{{ field.FieldName }}) + {%- endif %} +{% endfor -%} + .ProjectTo<{{TableNameView}}>(_mapper.ConfigurationProvider); return await {{LowercaseQueryableName}}.ToListAsync(); }