Merge branch 'Test_HIR_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_HIR_Net8
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
commit
9aa5c27f60
|
@ -82,7 +82,6 @@ builder.Services.AddControllers(options =>
|
||||||
.AddNewtonsoftJsonSetup(builder.Services); // NewtonsoftJson 序列化 处理
|
.AddNewtonsoftJsonSetup(builder.Services); // NewtonsoftJson 序列化 处理
|
||||||
|
|
||||||
|
|
||||||
builder.Services.AddOptions().Configure<AliyunOSSOptions>(_configuration.GetSection("AliyunOSS"));
|
|
||||||
builder.Services.AddOptions().Configure<ObjectStoreServiceOptions>(_configuration.GetSection("ObjectStoreService"));
|
builder.Services.AddOptions().Configure<ObjectStoreServiceOptions>(_configuration.GetSection("ObjectStoreService"));
|
||||||
builder.Services.AddOptions().Configure<DicomSCPServiceOption>(_configuration.GetSection("DicomSCPServiceConfig"));
|
builder.Services.AddOptions().Configure<DicomSCPServiceOption>(_configuration.GetSection("DicomSCPServiceConfig"));
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ namespace IRaCIS.Core.SCP.Service
|
||||||
DateTime? studyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyDate, string.Empty) == string.Empty ? null : dataset.GetSingleValue<DateTime>(DicomTag.StudyDate).Add(dataset.GetSingleValueOrDefault(DicomTag.StudyTime, string.Empty) == string.Empty ? TimeSpan.Zero : dataset.GetSingleValue<DateTime>(DicomTag.StudyTime).TimeOfDay);
|
DateTime? studyTime = dataset.GetSingleValueOrDefault(DicomTag.StudyDate, string.Empty) == string.Empty ? null : dataset.GetSingleValue<DateTime>(DicomTag.StudyDate).Add(dataset.GetSingleValueOrDefault(DicomTag.StudyTime, string.Empty) == string.Empty ? TimeSpan.Zero : dataset.GetSingleValue<DateTime>(DicomTag.StudyTime).TimeOfDay);
|
||||||
|
|
||||||
//先传输了修改了患者编号的,又传输了没有修改患者编号的,导致后传输的没有修改患者编号的下面的检查为0
|
//先传输了修改了患者编号的,又传输了没有修改患者编号的,导致后传输的没有修改患者编号的下面的检查为0
|
||||||
if (findPatient == null && findStudy==null)
|
if (findPatient == null && findStudy == null)
|
||||||
{
|
{
|
||||||
isPatientNeedAdd = true;
|
isPatientNeedAdd = true;
|
||||||
|
|
||||||
|
@ -279,13 +279,14 @@ namespace IRaCIS.Core.SCP.Service
|
||||||
{
|
{
|
||||||
await _seriesRepository.AddAsync(findSerice);
|
await _seriesRepository.AddAsync(findSerice);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isInstanceNeedAdd)
|
if (isInstanceNeedAdd)
|
||||||
{
|
{
|
||||||
await _instanceRepository.AddAsync(findInstance);
|
await _instanceRepository.AddAsync(findInstance);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
await _instanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == instanceId, u => new SCPInstance() { Path = fileRelativePath });
|
await _instanceRepository.BatchUpdateNoTrackingAsync(t => t.Id == instanceId, u => new SCPInstance() { Path = fileRelativePath, FileSize = fileSize });
|
||||||
}
|
}
|
||||||
|
|
||||||
await _studyRepository.SaveChangesAsync();
|
await _studyRepository.SaveChangesAsync();
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
|
||||||
"AliyunOSS": {
|
|
||||||
"RegionId": "cn-shanghai",
|
|
||||||
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
|
||||||
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
|
|
||||||
"AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
|
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
|
|
||||||
"BucketName": "zy-irc-store",
|
|
||||||
"ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"Region": "oss-cn-shanghai",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
|
|
||||||
"DicomSCPServiceConfig": {
|
|
||||||
"CalledAEList": [
|
|
||||||
"STORESCP"
|
|
||||||
],
|
|
||||||
"ServerPort": 11112
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -23,30 +23,6 @@
|
||||||
"RemoteNew": "Server=106.14.89.110,1435;Database=Test_HIR_New;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
"RemoteNew": "Server=106.14.89.110,1435;Database=Test_HIR_New;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
||||||
"Hangfire": "Server=106.14.89.110,1435;Database=Test_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
"Hangfire": "Server=106.14.89.110,1435;Database=Test_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
||||||
},
|
},
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": false,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": false,
|
|
||||||
|
|
||||||
"OpenTrialRelationDelete": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": false,
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 30
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 465,
|
|
||||||
"Host": "smtp.qiye.aliyun.com",
|
|
||||||
"FromEmail": "test-study@extimaging.com",
|
|
||||||
"FromName": "Test_Study",
|
|
||||||
"AuthorizationCode": "zhanying123",
|
|
||||||
|
|
||||||
"SiteUrl": "http://study.test.extimaging.com/login"
|
|
||||||
},
|
|
||||||
"DicomSCPServiceConfig": {
|
"DicomSCPServiceConfig": {
|
||||||
"CalledAEList": [
|
"CalledAEList": [
|
||||||
"STORESCP",
|
"STORESCP",
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AWS",
|
|
||||||
"AWS": {
|
|
||||||
"Region": "us-east-1",
|
|
||||||
"EndPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"UseSSL": true,
|
|
||||||
"RoleArn": "arn:aws:iam::471112624751:role/lili_s3_access",
|
|
||||||
"AccessKeyId": "AKIAW3MEAFJXZ2TZK7GM",
|
|
||||||
"SecretAccessKey": "9MLQCQ1HifEVW1gf068zBRAOb4wNnfrOkvBVByth",
|
|
||||||
"BucketName": "ei-med-s3-lili-store",
|
|
||||||
"ViewEndpoint": "https://ei-med-s3-lili-store.s3.amazonaws.com",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=us-prod-mssql-service,1433;Database=US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=us-prod-mssql-service,1433;Database=US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
"DicomSCPServiceConfig": {
|
|
||||||
"CalledAEList": [
|
|
||||||
"STORESCP"
|
|
||||||
],
|
|
||||||
"ServerPort": 11112
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AWS",
|
|
||||||
"AWS": {
|
|
||||||
"Region": "us-east-1",
|
|
||||||
"EndPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"UseSSL": true,
|
|
||||||
"RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access",
|
|
||||||
"AccessKeyId": "AKIAW3MEAFJX7IPXISP4",
|
|
||||||
"SecretAccessKey": "Pgrg3le5jPxZQ7MR1yYNS30J0XRyJeKVyIIjElXc",
|
|
||||||
"BucketName": "ei-med-s3-lili-uat-store",
|
|
||||||
"ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com/",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=us-mssql-service,1433;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=us-mssql-service,1433;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
"DicomSCPServiceConfig": {
|
|
||||||
"CalledAEList": [
|
|
||||||
"STORESCP"
|
|
||||||
],
|
|
||||||
"ServerPort": 11112
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ObjectStoreService": {
|
||||||
|
"ObjectStoreUse": "MinIO",
|
||||||
|
"MinIO": {
|
||||||
|
"EndPoint": "101.132.253.119",
|
||||||
|
"Port": "9001",
|
||||||
|
"UseSSL": false,
|
||||||
|
"AccessKeyId": "L6owzRVeDJJw3PcRmK2c",
|
||||||
|
"SecretAccessKey": "2XvFDYSH7EyHQNtpDCgk4efgdsdarQmRKgx1LlOI",
|
||||||
|
"BucketName": "hir-uat",
|
||||||
|
"ViewEndpoint": "http://101.132.253.119:9001/hir-uat/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"RemoteNew": "Server=101.132.253.119,1435;Database=Uat_HIR;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
||||||
|
"Hangfire": "Server=101.132.253.119,1435;Database=Uat_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
"DicomSCPServiceConfig": {
|
||||||
|
"CalledAEList": [
|
||||||
|
"STORESCP",
|
||||||
|
"Value1",
|
||||||
|
"Value2",
|
||||||
|
"Value3"
|
||||||
|
],
|
||||||
|
"ServerPort": 11112
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
|
||||||
"AliyunOSS": {
|
|
||||||
"RegionId": "cn-shanghai",
|
|
||||||
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
|
||||||
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"AccessKeyId": "LTAI5tRRZehUp2V9pyTPtAJm",
|
|
||||||
"AccessKeySecret": "FLizxkHsMm4CGYHtkV8E3PNJJZU7oV",
|
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/dev-oss-access",
|
|
||||||
"BucketName": "zy-irc-uat-store",
|
|
||||||
"ViewEndpoint": "https://zy-irc-uat-store.oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"Region": "oss-cn-shanghai",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=47.117.164.182,1434;Database=Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=47.117.164.182,1434;Database=Uat_IRC.Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
"DicomSCPServiceConfig": {
|
|
||||||
"CalledAEList": [
|
|
||||||
"STORESCP"
|
|
||||||
],
|
|
||||||
"ServerPort": 11112
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=47.117.164.182,1434;Database=Event_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=47.117.164.182,1434;Database=Event_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
|
||||||
"AliyunOSS": {
|
|
||||||
"RegionId": "cn-shanghai",
|
|
||||||
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
|
||||||
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
|
|
||||||
"AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
|
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
|
|
||||||
"BucketName": "zy-irc-store",
|
|
||||||
"ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"Region": "oss-cn-shanghai",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
},
|
|
||||||
"MinIO": {
|
|
||||||
"endpoint": "http://192.168.3.68",
|
|
||||||
"port": "8001",
|
|
||||||
"useSSL": false,
|
|
||||||
"accessKey": "IDFkwEpWej0b4DtiuThL",
|
|
||||||
"secretKey": "Lhuu83yMhVwu7c1SnjvGY6lq74jzpYqifK6Qtj4h",
|
|
||||||
"bucketName": "test"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": true,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": true,
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 30,
|
|
||||||
"AutoLoginOutMinutes": 60,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90
|
|
||||||
},
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 465,
|
|
||||||
"Host": "smtp.qiye.aliyun.com",
|
|
||||||
"FromEmail": "uat@extimaging.com",
|
|
||||||
"FromName": "UAT_IRC",
|
|
||||||
"AuthorizationCode": "SHzyyl2021",
|
|
||||||
"SiteUrl": "http://irc.event.extimaging.com/login",
|
|
||||||
"CompanyName": "Extensive Imaging",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Extensive Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗",
|
|
||||||
"IsEnv_US": false
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,82 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
//"RemoteNew": "Server=101.132.193.237,1434;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
|
|
||||||
//"Hangfire": "Server=101.132.193.237,1434;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
|
|
||||||
"RemoteNew": "Server=prod_mssql_standard,1433;Database=Prod_IRC;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=prod_mssql_standard,1433;Database=Prod_IRC_Hangfire;User ID=sa;Password=zhanying@2021;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
|
||||||
"AliyunOSS": {
|
|
||||||
"RegionId": "cn-shanghai",
|
|
||||||
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
|
||||||
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"AccessKeyId": "LTAI5tNRTsqL6aWmHkDmTwoH",
|
|
||||||
"AccessKeySecret": "7mtGz3qrYWI6JMMBZiLeC119VWicZH",
|
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/irc-oss-access",
|
|
||||||
"BucketName": "zy-irc-store",
|
|
||||||
"ViewEndpoint": "https://zy-irc-cache.oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"Region": "oss-cn-shanghai",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
},
|
|
||||||
"MinIO": {
|
|
||||||
"endpoint": "http://192.168.3.68",
|
|
||||||
"port": "8001",
|
|
||||||
"useSSL": false,
|
|
||||||
"accessKey": "IDFkwEpWej0b4DtiuThL",
|
|
||||||
"secretKey": "Lhuu83yMhVwu7c1SnjvGY6lq74jzpYqifK6Qtj4h",
|
|
||||||
"bucketName": "test"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": true,
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": true,
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
"LoginFailLockMinutes": 30,
|
|
||||||
|
|
||||||
"AutoLoginOutMinutes": 360,
|
|
||||||
|
|
||||||
"OpenLoginMFA": false,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 465,
|
|
||||||
"Host": "smtp.qiye.aliyun.com",
|
|
||||||
"FromEmail": "IRC@extimaging.com",
|
|
||||||
"FromName": "IRC",
|
|
||||||
"AuthorizationCode": "ExtImg@2022",
|
|
||||||
"SiteUrl": "http://irc.extimaging.com/login",
|
|
||||||
"OrganizationName": "Extlmaging",
|
|
||||||
"OrganizationNameCN": "Extlmaging",
|
|
||||||
"CompanyName": "Extensive Imaging",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Extensive Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗",
|
|
||||||
"IsEnv_US": false,
|
|
||||||
"IsOpenErrorNoticeEmail": true,
|
|
||||||
"ErrorNoticeEmailList": [ "872297557@qq.com" ]
|
|
||||||
},
|
|
||||||
"SystemPacsConfig": {
|
|
||||||
"Port": "11113",
|
|
||||||
"IP": "101.132.193.237"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,95 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"Db_Type": "pgsql",
|
|
||||||
"RemoteNew": "Host=106.14.89.110;Port=5432;Username=sa;Password=pgsql_pwd;Database=Test2_PG",
|
|
||||||
"Hangfire": "Server=106.14.89.110,1435;Database=Test_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
|
|
||||||
"ObjectStoreService": {
|
|
||||||
|
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
|
||||||
|
|
||||||
"AliyunOSS": {
|
|
||||||
"regionId": "cn-shanghai",
|
|
||||||
"internalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
|
||||||
"endPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"accessKeyId": "LTAI5tKvzs7ed3UfSpNk3xwQ",
|
|
||||||
"accessKeySecret": "zTIceGEShlZDGnLrCFfIGFE7TXVRio",
|
|
||||||
"bucketName": "zy-irc-test-store",
|
|
||||||
"roleArn": "acs:ram::1899121822495495:role/oss-upload",
|
|
||||||
"viewEndpoint": "https://zy-irc-test-store.oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"region": "oss-cn-shanghai"
|
|
||||||
},
|
|
||||||
"MinIO": {
|
|
||||||
"endPoint": "hir-oss.test.extimaging.com",
|
|
||||||
"port": "443",
|
|
||||||
"useSSL": true,
|
|
||||||
"accessKey": "fbStsVYCIPKHQneeqMwD",
|
|
||||||
"secretKey": "TzgvyA3zGXMUnpilJNUlyMYHfosl1hBMl6lxPmjy",
|
|
||||||
"bucketName": "irc-test",
|
|
||||||
"viewEndpoint": "https://hir-oss.test.extimaging.com/irc-test"
|
|
||||||
},
|
|
||||||
"AWS": {
|
|
||||||
"endPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"useSSL": true,
|
|
||||||
"accessKey": "AKIAZQ3DRSOHFPJJ6FEU",
|
|
||||||
"secretKey": "l+yjtvV7Z4jiwm/7xCYv30UeUj/SvuqqYzAwjJHf",
|
|
||||||
"bucketName": "ei-irc-test-store",
|
|
||||||
"viewEndpoint": "https://ei-irc-test-store.s3.amazonaws.com/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": false,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": false,
|
|
||||||
|
|
||||||
"OpenTrialRelationDelete": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": false,
|
|
||||||
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 1,
|
|
||||||
|
|
||||||
"AutoLoginOutMinutes": 1,
|
|
||||||
|
|
||||||
"OpenLoginMFA": false,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 465,
|
|
||||||
"Host": "smtp.qiye.aliyun.com",
|
|
||||||
"FromEmail": "test@extimaging.com",
|
|
||||||
"FromName": "Test_IRC",
|
|
||||||
"AuthorizationCode": "SHzyyl2021",
|
|
||||||
"SiteUrl": "http://irc.test.extimaging.com/login",
|
|
||||||
|
|
||||||
"OrganizationName": "Extlmaging",
|
|
||||||
"OrganizationNameCN": "Extlmaging",
|
|
||||||
"CompanyName": "Extensive Imaging",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Extensive Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗"
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemPacsConfig": {
|
|
||||||
"Port": "11113",
|
|
||||||
"IP": "106.14.89.110"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,87 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=us-prod-mssql-service,1433;Database=US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=us-prod-mssql-service,1433;Database=US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
//"RemoteNew": "Server=44.210.231.169,1435;Database=US_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
//"Hangfire": "Server=44.210.231.169,1435;Database=US_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
},
|
|
||||||
|
|
||||||
"ObjectStoreService": {
|
|
||||||
"ObjectStoreUse": "AWS",
|
|
||||||
"MinIO": {
|
|
||||||
"endPoint": "44.210.231.169",
|
|
||||||
"port": "9001",
|
|
||||||
"useSSL": false,
|
|
||||||
"accessKey": "e9bT1isTOqSAUxb6wd4n",
|
|
||||||
"secretKey": "b5TaDzNdQCBtCvfm8eZ3dR6yY7tfZu2JYze2Po1i",
|
|
||||||
"bucketName": "prod-irc-us",
|
|
||||||
"viewEndpoint": "http://44.210.231.169:9001/prod-irc-us/"
|
|
||||||
},
|
|
||||||
|
|
||||||
"AWS": {
|
|
||||||
"Region": "us-east-1",
|
|
||||||
"EndPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"UseSSL": true,
|
|
||||||
"RoleArn": "arn:aws:iam::471112624751:role/lili_s3_access",
|
|
||||||
"AccessKeyId": "AKIAW3MEAFJXZ2TZK7GM",
|
|
||||||
"SecretAccessKey": "9MLQCQ1HifEVW1gf068zBRAOb4wNnfrOkvBVByth",
|
|
||||||
"BucketName": "ei-med-s3-lili-store",
|
|
||||||
"ViewEndpoint": "https://ei-med-s3-lili-store.s3.amazonaws.com",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": false,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": false,
|
|
||||||
|
|
||||||
"OpenTrialRelationDelete": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": false,
|
|
||||||
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 30,
|
|
||||||
"AutoLoginOutMinutes": 60,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 587,
|
|
||||||
"Host": "smtp-mail.outlook.com",
|
|
||||||
"FromEmail": "donotreply@elevateimaging.ai",
|
|
||||||
"FromName": "LiLi",
|
|
||||||
"AuthorizationCode": "Q#669869497420ul",
|
|
||||||
|
|
||||||
"OrganizationName": "Elevate Imaging",
|
|
||||||
"OrganizationNameCN": "Elevate Imaging",
|
|
||||||
"CompanyName": "Elevate Imaging Inc.",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Elevate Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗",
|
|
||||||
"SiteUrl": "https://lili.elevateimaging.ai/login",
|
|
||||||
"IsEnv_US": true,
|
|
||||||
"IsOpenErrorNoticeEmail": true,
|
|
||||||
"ErrorNoticeEmailList": [ "872297557@qq.com" ]
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemPacsConfig": {
|
|
||||||
"Port": "104",
|
|
||||||
"IP": "44.210.231.169"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,95 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=106.14.89.110,1435;Database=Test_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=106.14.89.110,1435;Database=Test_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
|
|
||||||
"ObjectStoreService": {
|
|
||||||
|
|
||||||
"ObjectStoreUse": "AWS",
|
|
||||||
"MinIO": {
|
|
||||||
//"endPoint": "hir-oss.uat.extimaging.com",
|
|
||||||
//"port": "443",
|
|
||||||
//"useSSL": true,
|
|
||||||
//"viewEndpoint": "https://hir-oss.uat.extimaging.com/hir-uat",
|
|
||||||
|
|
||||||
"endPoint": "47.117.164.182",
|
|
||||||
"port": "9001",
|
|
||||||
"useSSL": false,
|
|
||||||
"viewEndpoint": "http://47.117.164.182:9001/test-irc-us",
|
|
||||||
|
|
||||||
"accessKey": "b9Ul0e98xPzt6PwRXA1Q",
|
|
||||||
"secretKey": "DzMaU2L4OXl90uytwOmDXF2encN0Jf4Nxu2XkYqQ",
|
|
||||||
"bucketName": "test-irc-us"
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
"AWS": {
|
|
||||||
"Region": "us-east-1",
|
|
||||||
"EndPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"UseSSL": true,
|
|
||||||
"RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access",
|
|
||||||
"AccessKeyId": "AKIAW3MEAFJX7IPXISP4",
|
|
||||||
"SecretAccessKey": "Pgrg3le5jPxZQ7MR1yYNS30J0XRyJeKVyIIjElXc",
|
|
||||||
"BucketName": "ei-med-s3-lili-uat-store",
|
|
||||||
"ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": true,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
|
||||||
|
|
||||||
"OpenTrialRelationDelete": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": true,
|
|
||||||
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 30,
|
|
||||||
"AutoLoginOutMinutes": 60,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90,
|
|
||||||
|
|
||||||
"OpenLoginMFA": true
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 587,
|
|
||||||
"Host": "smtp-mail.outlook.com",
|
|
||||||
"FromEmail": "donotreply@elevateimaging.ai",
|
|
||||||
"FromName": "LiLi",
|
|
||||||
"AuthorizationCode": "Q#669869497420ul",
|
|
||||||
|
|
||||||
"OrganizationName": "Elevate Imaging",
|
|
||||||
"OrganizationNameCN": "Elevate Imaging",
|
|
||||||
"CompanyName": "Elevate Imaging Inc.",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Elevate Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗",
|
|
||||||
"SiteUrl": "https://lili.test.elevateimaging.ai/login",
|
|
||||||
"IsEnv_US": true,
|
|
||||||
"IsOpenErrorNoticeEmail": false,
|
|
||||||
"ErrorNoticeEmailList": [ "872297557@qq.com" ]
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemPacsConfig": {
|
|
||||||
"Port": "104",
|
|
||||||
"IP": "3.226.182.187"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,99 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
//"RemoteNew": "Server=us-mssql-service,1433;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
//"Hangfire": "Server=us-mssql-service,1433;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
|
|
||||||
"RemoteNew": "Server=3.226.182.187,1435;Database=US_Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=3.226.182.187,1435;Database=US_Uat_IRC_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
|
|
||||||
"ObjectStoreService": {
|
|
||||||
|
|
||||||
"ObjectStoreUse": "AWS",
|
|
||||||
|
|
||||||
"MinIO": {
|
|
||||||
//"endPoint": "hir-minio.uat.elevateimaging.ai",
|
|
||||||
//"port": "443",
|
|
||||||
//"useSSL": true,
|
|
||||||
//"viewEndpoint": "https://hir-minio.uat.elevateimaging.ai/uat-irc-us",
|
|
||||||
|
|
||||||
"endPoint": "3.226.182.187",
|
|
||||||
"port": "9001",
|
|
||||||
"useSSL": false,
|
|
||||||
"viewEndpoint": "http://44.218.11.19:9001/uat-irc-us",
|
|
||||||
|
|
||||||
"accessKey": "lH8DkKskLuDqPaiubuSQ",
|
|
||||||
"secretKey": "pdPdicvvLeH7xAC5yFUrI7odMyBfOXxvVWMvKYV4",
|
|
||||||
"bucketName": "uat-irc-us"
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
"AWS": {
|
|
||||||
"Region": "us-east-1",
|
|
||||||
"EndPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"UseSSL": true,
|
|
||||||
"RoleArn": "arn:aws:iam::471112624751:role/uat_s3_access",
|
|
||||||
"AccessKeyId": "AKIAW3MEAFJX7IPXISP4",
|
|
||||||
"SecretAccessKey": "Pgrg3le5jPxZQ7MR1yYNS30J0XRyJeKVyIIjElXc",
|
|
||||||
"BucketName": "ei-med-s3-lili-uat-store",
|
|
||||||
"ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": true,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
|
||||||
|
|
||||||
"OpenTrialRelationDelete": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": false,
|
|
||||||
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 30,
|
|
||||||
"AutoLoginOutMinutes": 60,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90,
|
|
||||||
|
|
||||||
"OpenLoginMFA": false
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 587,
|
|
||||||
"Host": "smtp-mail.outlook.com",
|
|
||||||
"FromEmail": "donotreply@elevateimaging.ai",
|
|
||||||
"FromName": "LiLi",
|
|
||||||
"AuthorizationCode": "Q#669869497420ul",
|
|
||||||
|
|
||||||
"OrganizationName": "Elevate Imaging",
|
|
||||||
"OrganizationNameCN": "Elevate Imaging",
|
|
||||||
"CompanyName": "Elevate Imaging Inc.",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Elevate Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗",
|
|
||||||
"SiteUrl": "https://lili.test.elevateimaging.ai/login",
|
|
||||||
"IsEnv_US": true,
|
|
||||||
"IsOpenErrorNoticeEmail": false,
|
|
||||||
"ErrorNoticeEmailList": [ "872297557@qq.com" ]
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemPacsConfig": {
|
|
||||||
"Port": "104",
|
|
||||||
"IP": "3.226.182.187"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft": "Warning",
|
||||||
|
"Microsoft.Hosting.Lifetime": "Information"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ObjectStoreService": {
|
||||||
|
"ObjectStoreUse": "MinIO",
|
||||||
|
"MinIO": {
|
||||||
|
"EndPoint": "hir-oss.uat.extimaging.com",
|
||||||
|
"Port": "443",
|
||||||
|
"UseSSL": true,
|
||||||
|
//"endPoint": "106.14.89.110",
|
||||||
|
//"port": "9001",
|
||||||
|
//"useSSL": false,
|
||||||
|
"AccessKeyId": "L6owzRVeDJJw3PcRmK2c",
|
||||||
|
"SecretAccessKey": "2XvFDYSH7EyHQNtpDCgk4efgdsdarQmRKgx1LlOI",
|
||||||
|
"BucketName": "hir-uat",
|
||||||
|
"ViewEndpoint": "https://hir-oss.uat.extimaging.com/hir-uat"
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"RemoteNew": "Server=101.132.253.119,1435;Database=Uat_HIR;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
||||||
|
"Hangfire": "Server=101.132.253.119,1435;Database=Uat_HIR_Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
||||||
|
},
|
||||||
|
"BasicSystemConfig": {
|
||||||
|
"OpenUserComplexPassword": false,
|
||||||
|
"OpenSignDocumentBeforeWork": false,
|
||||||
|
"OpenTrialRelationDelete": true,
|
||||||
|
"OpenLoginLimit": false,
|
||||||
|
"LoginMaxFailCount": 5,
|
||||||
|
"LoginFailLockMinutes": 30,
|
||||||
|
"AESKey": "HIR_System_AES_Key_Info"
|
||||||
|
},
|
||||||
|
"SystemHospitalConfig": {
|
||||||
|
"HospitalCode": "EI",
|
||||||
|
"HospitalLogoPath": "/System/GeneralDocuments/1716453306898_图片2.png",
|
||||||
|
"TrialKeepCount": 60,
|
||||||
|
"HospitalName": "上海展影医疗科技有限公司",
|
||||||
|
"HospitalAliasName": "展影医疗",
|
||||||
|
"Country": "中国",
|
||||||
|
"City": "上海",
|
||||||
|
"Province": "上海",
|
||||||
|
"Address": "上海市杨浦区国泰路复旦科技园",
|
||||||
|
"Phone": "021-60702575",
|
||||||
|
"IsCanConnectInternet": false
|
||||||
|
},
|
||||||
|
"SystemEmailSendConfig": {
|
||||||
|
"Port": 465,
|
||||||
|
"Host": "smtp.qiye.aliyun.com",
|
||||||
|
"FromEmail": "test-study@extimaging.com",
|
||||||
|
"FromName": "Test_HIR",
|
||||||
|
"AuthorizationCode": "zhanying123",
|
||||||
|
"SiteUrl": "http://hir.test.extimaging.com/login"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,100 +0,0 @@
|
||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Information",
|
|
||||||
"Microsoft": "Warning",
|
|
||||||
"Microsoft.Hosting.Lifetime": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"RemoteNew": "Server=47.117.164.182,1434;Database=Uat_IRC;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
|
|
||||||
"Hangfire": "Server=47.117.164.182,1434;Database=Uat_IRC.Hangfire;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
|
|
||||||
},
|
|
||||||
"ObjectStoreService": {
|
|
||||||
|
|
||||||
"ObjectStoreUse": "AliyunOSS",
|
|
||||||
|
|
||||||
"AliyunOSS": {
|
|
||||||
"RegionId": "cn-shanghai",
|
|
||||||
"InternalEndpoint": "https://oss-cn-shanghai-internal.aliyuncs.com",
|
|
||||||
"EndPoint": "https://oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"AccessKeyId": "LTAI5tRRZehUp2V9pyTPtAJm",
|
|
||||||
"AccessKeySecret": "FLizxkHsMm4CGYHtkV8E3PNJJZU7oV",
|
|
||||||
"RoleArn": "acs:ram::1899121822495495:role/dev-oss-access",
|
|
||||||
"BucketName": "zy-irc-uat-store",
|
|
||||||
"ViewEndpoint": "https://zy-irc-uat-store.oss-cn-shanghai.aliyuncs.com",
|
|
||||||
"Region": "oss-cn-shanghai",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
},
|
|
||||||
|
|
||||||
"MinIO": {
|
|
||||||
"endPoint": "hir-oss.uat.extimaging.com",
|
|
||||||
"port": "80",
|
|
||||||
"useSSL": false,
|
|
||||||
"viewEndpoint": "http://hir-oss.uat.extimaging.com/irc-uat",
|
|
||||||
//"port": "443",
|
|
||||||
//"useSSL": true,
|
|
||||||
//"viewEndpoint": "https://hir-oss.uat.extimaging.com/irc-uat",
|
|
||||||
"accessKey": "b9Ul0e98xPzt6PwRXA1Q",
|
|
||||||
"secretKey": "DzMaU2L4OXl90uytwOmDXF2encN0Jf4Nxu2XkYqQ",
|
|
||||||
"bucketName": "irc-uat"
|
|
||||||
|
|
||||||
},
|
|
||||||
"AWS": {
|
|
||||||
"Region": "us-east-1",
|
|
||||||
"EndPoint": "s3.us-east-1.amazonaws.com",
|
|
||||||
"UseSSL": true,
|
|
||||||
"RoleArn": "arn:aws:iam::471112624751:role/sts_s3_upload",
|
|
||||||
"AccessKeyId": "AKIAW3MEAFJXWRCGSX5Z",
|
|
||||||
"SecretAccessKey": "miais4jQGSd37A+TfBEP11AQM5u/CvotSmznJd8k",
|
|
||||||
"BucketName": "ei-med-s3-lili-uat-store",
|
|
||||||
"ViewEndpoint": "https://ei-med-s3-lili-uat-store.s3.amazonaws.com/",
|
|
||||||
"DurationSeconds": 7200
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"BasicSystemConfig": {
|
|
||||||
|
|
||||||
"OpenUserComplexPassword": true,
|
|
||||||
|
|
||||||
"OpenSignDocumentBeforeWork": true,
|
|
||||||
|
|
||||||
"OpenLoginLimit": true,
|
|
||||||
"LoginMaxFailCount": 5,
|
|
||||||
|
|
||||||
"LoginFailLockMinutes": 30,
|
|
||||||
"AutoLoginOutMinutes": 60,
|
|
||||||
"OpenLoginMFA": false,
|
|
||||||
|
|
||||||
"ContinuousReadingTimeMin": 120,
|
|
||||||
|
|
||||||
"ReadingRestTimeMin": 10,
|
|
||||||
"IsNeedChangePassWord": true,
|
|
||||||
|
|
||||||
"ChangePassWordDays": 90
|
|
||||||
|
|
||||||
},
|
|
||||||
"SystemEmailSendConfig": {
|
|
||||||
"Port": 465,
|
|
||||||
"Host": "smtp.qiye.aliyun.com",
|
|
||||||
"FromEmail": "uat@extimaging.com",
|
|
||||||
"FromName": "UAT_IRC",
|
|
||||||
"AuthorizationCode": "SHzyyl2021",
|
|
||||||
"SiteUrl": "http://irc.uat.extimaging.com/login",
|
|
||||||
"OrganizationName": "Extlmaging",
|
|
||||||
"OrganizationNameCN": "Extlmaging",
|
|
||||||
"CompanyName": "Extensive Imaging",
|
|
||||||
"CompanyNameCN": "上海展影医疗科技有限公司",
|
|
||||||
"CompanyShortName": "Extensive Imaging",
|
|
||||||
"CompanyShortNameCN": "展影医疗",
|
|
||||||
"IsEnv_US": false,
|
|
||||||
"IsOpenErrorNoticeEmail": false,
|
|
||||||
"ErrorNoticeEmailList": [ "872297557@qq.com" ]
|
|
||||||
},
|
|
||||||
|
|
||||||
"SystemPacsConfig": {
|
|
||||||
"Port": "11113",
|
|
||||||
"IP": "47.117.164.182"
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -18204,13 +18204,19 @@
|
||||||
<param name="inQuery"></param>
|
<param name="inQuery"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.PatientService.RequestPackageAndAnonymizImage(System.Guid,System.Guid,IRaCIS.Core.Application.Helper.IOSSService,System.Boolean)">
|
<member name="M:IRaCIS.Application.Services.PatientService.GetDownloadSubjectVisitStudyInfo(System.Guid,System.Guid)">
|
||||||
<summary>
|
<summary>
|
||||||
打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
获取下载的访视检查信息
|
||||||
</summary>
|
</summary>
|
||||||
<param name="trialId"></param>
|
<param name="trialId"></param>
|
||||||
<param name="subjectVisitId"></param>
|
<param name="subjectVisitId"></param>
|
||||||
<param name="isAnonymize"></param>
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:IRaCIS.Application.Services.PatientService.DownloadImageSuccess(System.Guid)">
|
||||||
|
<summary>
|
||||||
|
影像下载成功回调
|
||||||
|
</summary>
|
||||||
|
<param name="trialImageDownloadId"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Application.Services.PatientService.GetTrialSubjectVisitDownloadList(IRaCIS.Application.Contracts.VisitImageDownloadQuery)">
|
<member name="M:IRaCIS.Application.Services.PatientService.GetTrialSubjectVisitDownloadList(IRaCIS.Application.Contracts.VisitImageDownloadQuery)">
|
||||||
|
|
|
@ -108,6 +108,9 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
|
||||||
public class VisitTaskViewBasic
|
public class VisitTaskViewBasic
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public Guid? SourceSubjectVisitId { get; set; }
|
||||||
|
|
||||||
public string SubjectShortName { get; set; }
|
public string SubjectShortName { get; set; }
|
||||||
|
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
|
@ -519,7 +522,7 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
|
|
||||||
public string? SubjectCode { get; set; } = null;
|
public string? SubjectCode { get; set; } = null;
|
||||||
|
|
||||||
|
public string? SubjectName { get; set; }
|
||||||
public string? PatientName { get; set; }
|
public string? PatientName { get; set; }
|
||||||
public string? PatientIdStr { get; set; }
|
public string? PatientIdStr { get; set; }
|
||||||
|
|
||||||
|
@ -532,6 +535,8 @@ namespace IRaCIS.Core.Application.ViewModel
|
||||||
public DateTime? BeginSignDate { get; set; }
|
public DateTime? BeginSignDate { get; set; }
|
||||||
|
|
||||||
public DateTime? EndSignDate { get; set; }
|
public DateTime? EndSignDate { get; set; }
|
||||||
|
|
||||||
|
public string? SubjectName { get; set; }
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
[NotDefault]
|
[NotDefault]
|
||||||
|
|
|
@ -1185,7 +1185,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
return ResponseOutput.Ok(result, new
|
return ResponseOutput.Ok(result, new
|
||||||
{
|
{
|
||||||
IsReadingTaskViewInOrder = isReadingTaskViewInOrder == ReadingOrder.InOrder,
|
IsReadingTaskViewInOrder = isReadingTaskViewInOrder,
|
||||||
RandomReadInfo = iRUnReadOut,
|
RandomReadInfo = iRUnReadOut,
|
||||||
ReadingTool = readingTool,
|
ReadingTool = readingTool,
|
||||||
IseCRFShowInDicomReading = criterionConfig.IseCRFShowInDicomReading,
|
IseCRFShowInDicomReading = criterionConfig.IseCRFShowInDicomReading,
|
||||||
|
@ -1266,12 +1266,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
|
|
||||||
// 前序 不存在 未一致性核查未通过的
|
// 前序 不存在 未一致性核查未通过的
|
||||||
.Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum >= sv.VisitNum))
|
.Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum >= sv.VisitNum))
|
||||||
//.WhereIf(critrion.IsAutoCreate == false, t => t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(t => t.IsGeneratedTask == false) ?
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectName), t => t.Subject.ShortName.Contains(inQuery.SubjectName))
|
||||||
//t.VisitTaskNum <= t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.IsGeneratedTask == false).Min(t => t.SubjectVisit.VisitNum) : true)
|
|
||||||
//.Where(t => t.Subject.SubjectVisitList.Any(t => t.CheckState != CheckStateEnum.CVPassed) ? t.VisitTaskNum <= t.Subject.SubjectVisitList.Where(t => t.CheckState != CheckStateEnum.CVPassed).Min(t => t.VisitNum) : true)
|
|
||||||
//满足前序访视不存在 需要签署但是未签署 sql 相当复杂 同时想查询所有未读的统计数字 就无法统计 byzhouhang
|
|
||||||
//但是加字段 IsFrontTaskNeedSignButNotSign 那么签名临床数据的时候,要对该subject 该标准的有效的任务 这个字段需要在签名的时候维护 采取这种方式 统计数字灵活
|
|
||||||
//.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum))
|
|
||||||
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => (t.Subject.Code.Contains(inQuery.SubjectCode!) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(inQuery.SubjectCode!) && t.IsAnalysisCreate));
|
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectCode), t => (t.Subject.Code.Contains(inQuery.SubjectCode!) && t.IsAnalysisCreate == false) || (t.BlindSubjectCode.Contains(inQuery.SubjectCode!) && t.IsAnalysisCreate));
|
||||||
|
|
||||||
|
|
||||||
|
@ -1486,7 +1481,7 @@ public class VisitTaskService(IRepository<VisitTask> _visitTaskRepository,
|
||||||
.WhereIf(inQuery.PIAuditState != null, t => t.PIAuditState == inQuery.PIAuditState)
|
.WhereIf(inQuery.PIAuditState != null, t => t.PIAuditState == inQuery.PIAuditState)
|
||||||
.WhereIf(inQuery.BeginSignDate != null, t => t.SignTime >= inQuery.BeginSignDate)
|
.WhereIf(inQuery.BeginSignDate != null, t => t.SignTime >= inQuery.BeginSignDate)
|
||||||
.WhereIf(inQuery.EndSignDate != null, t => t.SignTime <= inQuery.EndSignDate)
|
.WhereIf(inQuery.EndSignDate != null, t => t.SignTime <= inQuery.EndSignDate)
|
||||||
|
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.SubjectName), t => t.Subject.ShortName.Contains(inQuery.SubjectName))
|
||||||
//.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
|
//.WhereIf(inQuery.TrialSiteId != null, t => t.Subject.TrialSiteId == inQuery.TrialSiteId)
|
||||||
.WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
|
.WhereIf(inQuery.SubjectId != null, t => t.SubjectId == inQuery.SubjectId)
|
||||||
.WhereIf(inQuery.IsUrgent != null, t => t.IsUrgent == inQuery.IsUrgent)
|
.WhereIf(inQuery.IsUrgent != null, t => t.IsUrgent == inQuery.IsUrgent)
|
||||||
|
|
|
@ -42,8 +42,6 @@ namespace IRaCIS.Core.Application.Contracts.Dicom.DTO
|
||||||
|
|
||||||
public List<InstanceBasicInfo> InstanceInfoList { get; set; } = new List<InstanceBasicInfo>();
|
public List<InstanceBasicInfo> InstanceInfoList { get; set; } = new List<InstanceBasicInfo>();
|
||||||
|
|
||||||
public List<Guid> InstanceList => InstanceInfoList.Select(t => t.Id).ToList();
|
|
||||||
public List<string> InstancePathList => InstanceInfoList.Select(t => t.Path).ToList();
|
|
||||||
|
|
||||||
public bool IsExistMutiFrames => InstanceInfoList.Any(t => t.NumberOfFrames > 1);
|
public bool IsExistMutiFrames => InstanceInfoList.Any(t => t.NumberOfFrames > 1);
|
||||||
|
|
||||||
|
|
|
@ -838,9 +838,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
||||||
lesionImage.Add(new Dictionary<string, object>()
|
lesionImage.Add(new Dictionary<string, object>()
|
||||||
{
|
{
|
||||||
{ "ImageOneMark",getPicNum(true)+ picRowinfo[2*i].VisitTask.TaskName+" "+picRowinfo[2*i].RowMark},
|
{ "ImageOneMark",getPicNum(true)+ picRowinfo[2*i].VisitTask.TaskName+" "+picRowinfo[2*i].RowMark},
|
||||||
{ "ImageOneUrl" ,await GetWordPictureMaxWL(_options.CurrentValue.MinIO.viewEndpoint+picRowinfo[2*i].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290,390) },
|
{ "ImageOneUrl" ,await GetWordPictureMaxWL(_options.CurrentValue.MinIO.ViewEndpoint+picRowinfo[2*i].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290,390) },
|
||||||
{ "ImageTwoMark",getPicNum(picCount>2*i+1) + (picCount<=2*i+1?string.Empty:picRowinfo[2*i+1].VisitTask.TaskName+" "+picRowinfo[2*i+1].RowMark) },
|
{ "ImageTwoMark",getPicNum(picCount>2*i+1) + (picCount<=2*i+1?string.Empty:picRowinfo[2*i+1].VisitTask.TaskName+" "+picRowinfo[2*i+1].RowMark) },
|
||||||
{ "ImageTwoUrl", picCount<=2*i+1?string.Empty:await GetWordPictureMaxWL(_options.CurrentValue.MinIO.viewEndpoint+picRowinfo[2*i+1].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290, 390) },
|
{ "ImageTwoUrl", picCount<=2*i+1?string.Empty:await GetWordPictureMaxWL(_options.CurrentValue.MinIO.ViewEndpoint+picRowinfo[2*i+1].PicturePath ,System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{DownLoadGuid}"),290, 390) },
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using IRaCIS.Core.Application.ViewModel;
|
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
|
||||||
|
using IRaCIS.Core.Application.ViewModel;
|
||||||
using IRaCIS.Core.Domain.Share;
|
using IRaCIS.Core.Domain.Share;
|
||||||
using IRaCIS.Core.Infrastructure.Extention;
|
using IRaCIS.Core.Infrastructure.Extention;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
@ -922,14 +923,15 @@ namespace IRaCIS.Application.Contracts
|
||||||
|
|
||||||
public string IP { get; set; }
|
public string IP { get; set; }
|
||||||
|
|
||||||
public long VisitImageZipSize { get; set; }
|
public int StudyCount { get; set; }
|
||||||
|
|
||||||
//文件大小
|
public bool IsSuccess { get; set; }
|
||||||
public int VisitImageFileCount { get; set; }
|
|
||||||
|
|
||||||
public string VisitImageZipPath { get; set; } = string.Empty;
|
public DateTime DownloadStartTime { get; set; }
|
||||||
|
public DateTime? DownloadEndTime { get; set; }
|
||||||
|
|
||||||
public int? StudyCount { get; set; }
|
public int ImageCount { get; set; }
|
||||||
|
public long ImageSize { get; set; }
|
||||||
|
|
||||||
public UserTypeEnum UserTypeEnum { get; set; }
|
public UserTypeEnum UserTypeEnum { get; set; }
|
||||||
|
|
||||||
|
@ -1034,9 +1036,7 @@ namespace IRaCIS.Application.Contracts
|
||||||
public bool IsDeleted { get; set; }
|
public bool IsDeleted { get; set; }
|
||||||
public bool IsReading { get; set; } = true;
|
public bool IsReading { get; set; } = true;
|
||||||
|
|
||||||
public List<Guid> InstanceList { get; set; } = new List<Guid>();
|
public List<InstanceBasicInfo> InstanceInfoList { get; set; } = new List<InstanceBasicInfo>();
|
||||||
|
|
||||||
public List<string> InstancePathList { get; set; } = new List<string>();
|
|
||||||
|
|
||||||
public string ImageResizePath { get; set; }
|
public string ImageResizePath { get; set; }
|
||||||
}
|
}
|
||||||
|
|
|
@ -271,7 +271,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
var caheInfo = new TrialCacheInfo() { TrialId = trial.Id, TrialStatusStr = trial.TrialStatusStr, CriterionTypes = trial.CriterionTypes, AuthorizationEncrypt = trial.AuthorizationEncrypt, AuthorizationDate = trial.AuthorizationDate, CreateUserId = trial.CreateUserId, TrialCode = trial.TrialCode };
|
var caheInfo = new TrialCacheInfo() { TrialId = trial.Id, TrialStatusStr = trial.TrialStatusStr, CriterionTypes = trial.CriterionTypes, AuthorizationEncrypt = trial.AuthorizationEncrypt, AuthorizationDate = trial.AuthorizationDate, CreateUserId = trial.CreateUserId, TrialCode = trial.TrialCode };
|
||||||
|
|
||||||
await _provider.SetAsync(trial.Id.ToString(),caheInfo, TimeSpan.FromDays(7));
|
await _provider.SetAsync(trial.Id.ToString(), caheInfo, TimeSpan.FromDays(7));
|
||||||
|
|
||||||
return ResponseOutput.Ok(trial);
|
return ResponseOutput.Ok(trial);
|
||||||
}
|
}
|
||||||
|
@ -703,40 +703,26 @@ namespace IRaCIS.Application.Services
|
||||||
ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
|
ThenBy(s => s.SeriesTime).ThenBy(s => s.CreateTime)
|
||||||
.ProjectTo<PatientSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
.ProjectTo<PatientSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||||
|
|
||||||
var idList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
|
var instanceList = await _instanceRepository.Where(s => s.StudyId == scpStudyId).OrderBy(t => t.SeriesId).ThenBy(t => t.InstanceNumber)
|
||||||
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
|
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
|
||||||
.Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber }).ToListAsync();//.GroupBy(u => u.SeriesId);
|
.Select(t => new { t.SeriesId, t.Id, t.Path, t.NumberOfFrames, t.InstanceNumber }).ToListAsync();//.GroupBy(u => u.SeriesId);
|
||||||
|
|
||||||
foreach (var item in seriesList)
|
foreach (var series in seriesList)
|
||||||
{
|
{
|
||||||
item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList();
|
series.InstanceInfoList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k =>
|
||||||
|
new InstanceBasicInfo()
|
||||||
|
{
|
||||||
|
Id = k.Id,
|
||||||
|
NumberOfFrames = k.NumberOfFrames,
|
||||||
|
HtmlPath = string.Empty,
|
||||||
|
Path = k.Path,
|
||||||
|
InstanceNumber = k.InstanceNumber,
|
||||||
|
|
||||||
//处理多帧
|
}).ToList();
|
||||||
item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber)
|
|
||||||
.SelectMany(u =>
|
|
||||||
{
|
|
||||||
|
|
||||||
if (u.NumberOfFrames > 1)
|
|
||||||
{
|
|
||||||
var pathList = new List<string>();
|
|
||||||
|
|
||||||
for (int i = 1; i <= u.NumberOfFrames; i++)
|
|
||||||
{
|
|
||||||
pathList.Add(u.Path + "?frame=" + (i - 1));
|
|
||||||
}
|
|
||||||
return pathList;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new List<string> { u.Path };
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.ToList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var study = await _studyRepository.FirstOrDefaultAsync(t=>t.Id== scpStudyId);
|
var study = await _studyRepository.FirstOrDefaultAsync(t => t.Id == scpStudyId);
|
||||||
|
|
||||||
return ResponseOutput.Ok(seriesList, study);
|
return ResponseOutput.Ok(seriesList, study);
|
||||||
}
|
}
|
||||||
|
@ -899,7 +885,7 @@ namespace IRaCIS.Application.Services
|
||||||
.WhereIf(inQuery.Status != null, t => t.Status == inQuery.Status)
|
.WhereIf(inQuery.Status != null, t => t.Status == inQuery.Status)
|
||||||
.ProjectTo<PatienSubejctView>(_mapper.ConfigurationProvider);
|
.ProjectTo<PatienSubejctView>(_mapper.ConfigurationProvider);
|
||||||
|
|
||||||
var pageList = await subjectQuery.ToPagedListAsync(inQuery, nameof(PatienSubejctView.Code) );
|
var pageList = await subjectQuery.ToPagedListAsync(inQuery, nameof(PatienSubejctView.Code));
|
||||||
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(pageList);
|
return ResponseOutput.Ok(pageList);
|
||||||
|
@ -2215,9 +2201,7 @@ namespace IRaCIS.Application.Services
|
||||||
VisitNum = t.VisitNum,
|
VisitNum = t.VisitNum,
|
||||||
VisitName = t.VisitName,
|
VisitName = t.VisitName,
|
||||||
VisitEarliestStudyTime = t.SCPStudySubjectVisitList.Min(t => t.SCPStudy.StudyTime),
|
VisitEarliestStudyTime = t.SCPStudySubjectVisitList.Min(t => t.SCPStudy.StudyTime),
|
||||||
VisitLatestStudyTime = t.SCPStudySubjectVisitList.Max(t => t.SCPStudy.StudyTime),
|
VisitLatestStudyTime = t.SCPStudySubjectVisitList.Max(t => t.SCPStudy.StudyTime)
|
||||||
VisitImageZipPath = t.VisitImageZipPath,
|
|
||||||
PackState = t.PackState,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var defalutSortArray = new string[] { nameof(PatientSubjectVisitView.SubjectId), nameof(PatientSubjectVisitView.VisitNum) };
|
var defalutSortArray = new string[] { nameof(PatientSubjectVisitView.SubjectId), nameof(PatientSubjectVisitView.VisitNum) };
|
||||||
|
@ -2707,39 +2691,77 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
/// 获取下载的访视检查信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="trialId"></param>
|
/// <param name="trialId"></param>
|
||||||
/// <param name="subjectVisitId"></param>
|
/// <param name="subjectVisitId"></param>
|
||||||
/// <param name="isAnonymize"></param>
|
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
public async Task<IResponseOutput> GetDownloadSubjectVisitStudyInfo(Guid trialId, Guid subjectVisitId)
|
||||||
public async Task<IResponseOutput> RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, [FromServices] IOSSService _oSSService, bool isAnonymize = true)
|
|
||||||
{
|
{
|
||||||
var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
var query = from sv in _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
|
||||||
|
|
||||||
if (subjectVisit.PackState == PackState.WaitPack)
|
select new
|
||||||
|
{
|
||||||
|
TrialId = sv.TrialId,
|
||||||
|
SubjectId = sv.SubjectId,
|
||||||
|
SubjectCode = sv.Subject.Code,
|
||||||
|
VisitName = sv.VisitName,
|
||||||
|
|
||||||
|
StudyList = sv.StudyList
|
||||||
|
|
||||||
|
.Select(u => new
|
||||||
|
{
|
||||||
|
u.PatientId,
|
||||||
|
u.StudyTime,
|
||||||
|
u.StudyCode,
|
||||||
|
|
||||||
|
SeriesList = u.SeriesList.Select(z => new
|
||||||
|
{
|
||||||
|
z.Modality,
|
||||||
|
|
||||||
|
InstanceList = z.DicomInstanceList.Select(k => new
|
||||||
|
{
|
||||||
|
k.Path,
|
||||||
|
k.FileSize
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}).ToList(),
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var result = query.FirstOrDefault();
|
||||||
|
|
||||||
|
var preDownloadInfo = new SubejctVisitDownload()
|
||||||
{
|
{
|
||||||
HangfireJobHelper.NotImmediatelyOnceOnlyJob<IDownloadAndUploadService>(t => t.RequestPackageAndAnonymizImage(trialId, subjectVisitId, isAnonymize), TimeSpan.FromSeconds(1));
|
Id = NewId.NextSequentialGuid(),
|
||||||
|
IP = _userInfo.IP,
|
||||||
|
SubjectVisitId = subjectVisitId,
|
||||||
|
DownloadStartTime = DateTime.Now,
|
||||||
|
ImageCount = result.StudyList.Sum(s => s.SeriesList.Sum(s => s.InstanceList.Count())),
|
||||||
|
ImageSize = result.StudyList.Sum(t => t.SeriesList.Sum(s => s.InstanceList.Sum(i => i.FileSize))) ?? 0
|
||||||
|
};
|
||||||
|
|
||||||
subjectVisit.PackState = PackState.Packing;
|
await _subejctVisitDownloadRepository.AddAsync(preDownloadInfo, true);
|
||||||
|
|
||||||
await _subjectVisitRepository.SaveChangesAsync();
|
return ResponseOutput.Ok(result, preDownloadInfo.Id);
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var zipPath = subjectVisit.VisitImageZipPath;
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(zipPath))
|
|
||||||
{
|
|
||||||
//记录下载的记录
|
|
||||||
|
|
||||||
await _subejctVisitDownloadRepository.AddAsync(new SubejctVisitDownload() { IP = _userInfo.IP, SubjectVisitId = subjectVisitId }, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ResponseOutput.Ok(zipPath);
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 影像下载成功回调
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="trialImageDownloadId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<IResponseOutput> DownloadImageSuccess(Guid trialImageDownloadId)
|
||||||
|
{
|
||||||
|
await _subejctVisitDownloadRepository.UpdatePartialFromQueryAsync(t => t.Id == trialImageDownloadId, u => new SubejctVisitDownload()
|
||||||
|
{ DownloadEndTime = DateTime.Now, IsSuccess = true }, true);
|
||||||
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2798,191 +2820,4 @@ namespace IRaCIS.Application.Services
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface IDownloadAndUploadService
|
|
||||||
{
|
|
||||||
Task RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isAnonymize = true);
|
|
||||||
}
|
|
||||||
[ApiExplorerSettings(GroupName = "Trial")]
|
|
||||||
public class DownloadAndUploadService : BaseService, IDownloadAndUploadService
|
|
||||||
{
|
|
||||||
|
|
||||||
private readonly IRepository<SystemAnonymization> _systemAnonymizationRepository;
|
|
||||||
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
|
||||||
private readonly IOSSService _oSSService;
|
|
||||||
public DownloadAndUploadService(IRepository<SystemAnonymization> systemAnonymizationRepository, IRepository<SubjectVisit> subjectVisitRepository, IOSSService oSSService)
|
|
||||||
{
|
|
||||||
_systemAnonymizationRepository = systemAnonymizationRepository;
|
|
||||||
|
|
||||||
_subjectVisitRepository = subjectVisitRepository;
|
|
||||||
|
|
||||||
_oSSService = oSSService;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public async Task RequestPackageAndAnonymizImage(Guid trialId, Guid subjectVisitId, bool isAnonymize = true)
|
|
||||||
{
|
|
||||||
|
|
||||||
var subjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var addOrUpdateFixedFieldList = new List<SystemAnonymization>();
|
|
||||||
|
|
||||||
var ircFieldList = new List<SystemAnonymization>();
|
|
||||||
|
|
||||||
if (isAnonymize)
|
|
||||||
{
|
|
||||||
var systemAnonymizationList = _systemAnonymizationRepository.Where(t => t.IsEnable).ToList();
|
|
||||||
|
|
||||||
addOrUpdateFixedFieldList = systemAnonymizationList.Where(t => t.IsFixed).ToList();
|
|
||||||
|
|
||||||
ircFieldList = systemAnonymizationList.Where(t => t.IsFixed == false).ToList();
|
|
||||||
}
|
|
||||||
|
|
||||||
var subjectAndVisitInfo = _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { SubjectCode = t.Subject.Code, t.Trial.TrialCode, t.VisitNum }).FirstOrDefault();
|
|
||||||
|
|
||||||
var query = from sv in _subjectVisitRepository.Where(t => t.Id == subjectVisitId)
|
|
||||||
|
|
||||||
select new
|
|
||||||
{
|
|
||||||
SubjectCode = sv.Subject.Code,
|
|
||||||
VisitName = sv.VisitName,
|
|
||||||
StudyList = sv.StudyList.Select(u => new
|
|
||||||
{
|
|
||||||
u.PatientIdStr,
|
|
||||||
u.StudyTime,
|
|
||||||
u.StudyCode,
|
|
||||||
|
|
||||||
SeriesList = u.SeriesList.Select(z => new
|
|
||||||
{
|
|
||||||
z.Modality,
|
|
||||||
|
|
||||||
InstancePathList = z.DicomInstanceList.Select(k => new
|
|
||||||
{
|
|
||||||
k.Path
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
var info = query.FirstOrDefault();
|
|
||||||
|
|
||||||
if (info != null)
|
|
||||||
{
|
|
||||||
// 创建一个临时文件夹来存放文件
|
|
||||||
string tempFolderPath = Path.Combine(Directory.GetCurrentDirectory(), $"DownloadTemp_{NewId.NextGuid()}");
|
|
||||||
Directory.CreateDirectory(tempFolderPath);
|
|
||||||
|
|
||||||
// 遍历查询结果
|
|
||||||
foreach (var studyInfo in info.StudyList)
|
|
||||||
{
|
|
||||||
// 遍历 Series
|
|
||||||
foreach (var seriesInfo in studyInfo.SeriesList)
|
|
||||||
{
|
|
||||||
string studyFolderPath = Path.Combine(tempFolderPath, $"{info.SubjectCode}_{info.VisitName}", $"{studyInfo.StudyCode}_{studyInfo.StudyTime?.ToString("yyyy-MM-dd")}_{seriesInfo.Modality}");
|
|
||||||
|
|
||||||
// 创建 影像 文件夹
|
|
||||||
Directory.CreateDirectory(studyFolderPath);
|
|
||||||
|
|
||||||
// 遍历 InstancePathList
|
|
||||||
foreach (var instanceInfo in seriesInfo.InstancePathList)
|
|
||||||
{
|
|
||||||
// 复制文件到相应的文件夹
|
|
||||||
string destinationPath = Path.Combine(studyFolderPath, Path.GetFileName(instanceInfo.Path));
|
|
||||||
|
|
||||||
//下载到当前目录
|
|
||||||
await _oSSService.DownLoadFromOSSAsync(instanceInfo.Path, destinationPath);
|
|
||||||
|
|
||||||
#region 匿名化逻辑
|
|
||||||
|
|
||||||
|
|
||||||
if (isAnonymize)
|
|
||||||
{
|
|
||||||
DicomFile dicomFile = await DicomFile.OpenAsync(destinationPath, Encoding.Default);
|
|
||||||
|
|
||||||
DicomDataset dataset = dicomFile.Dataset;
|
|
||||||
|
|
||||||
foreach (var item in addOrUpdateFixedFieldList)
|
|
||||||
{
|
|
||||||
|
|
||||||
var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16));
|
|
||||||
|
|
||||||
dataset.AddOrUpdate(dicomTag, item.ReplaceValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (var item in ircFieldList)
|
|
||||||
{
|
|
||||||
|
|
||||||
var dicomTag = new DicomTag(Convert.ToUInt16(item.Group, 16), Convert.ToUInt16(item.Element, 16));
|
|
||||||
|
|
||||||
if (dicomTag == DicomTag.ClinicalTrialProtocolID)
|
|
||||||
{
|
|
||||||
dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (dicomTag == DicomTag.ClinicalTrialSiteID)
|
|
||||||
{
|
|
||||||
//dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialSiteCode);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (dicomTag == DicomTag.ClinicalTrialSubjectID)
|
|
||||||
{
|
|
||||||
dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.SubjectCode);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (dicomTag == DicomTag.ClinicalTrialTimePointID)
|
|
||||||
{
|
|
||||||
dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.VisitNum.ToString());
|
|
||||||
|
|
||||||
}
|
|
||||||
if (dicomTag == DicomTag.PatientID)
|
|
||||||
{
|
|
||||||
dataset.AddOrUpdate(dicomTag, subjectAndVisitInfo.TrialCode + "_" + subjectAndVisitInfo.SubjectCode);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var zipPath = Path.Combine(Directory.GetCurrentDirectory(), $"{info.SubjectCode}_{info.VisitName}_ImageStudy.zip");
|
|
||||||
|
|
||||||
ZipFile.CreateFromDirectory(tempFolderPath, zipPath);
|
|
||||||
|
|
||||||
//上传到Oss
|
|
||||||
var relativePath = await _oSSService.UploadToOSSAsync(zipPath, $"download_zip/{subjectVisitId}", false);
|
|
||||||
|
|
||||||
|
|
||||||
//subjectVisit.PackState = PackState.Packed;
|
|
||||||
//subjectVisit.VisitImageZipPath = relativePath;
|
|
||||||
//await _subjectVisitRepository.SaveChangesAsync();
|
|
||||||
|
|
||||||
var zipSize = File.OpenRead(zipPath).Length;
|
|
||||||
var fileCount = info.StudyList.SelectMany(t => t.SeriesList).SelectMany(t => t.InstancePathList).Count();
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.Packed, VisitImageZipPath = relativePath, VisitImageFileCount = fileCount, VisitImageZipSize = zipSize });
|
|
||||||
|
|
||||||
|
|
||||||
//清理文件夹
|
|
||||||
Directory.Delete(tempFolderPath, true);
|
|
||||||
File.Delete(zipPath);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
await _subjectVisitRepository.BatchUpdateNoTrackingAsync(t => t.Id == subjectVisitId, u => new SubjectVisit() { PackState = PackState.WaitPack });
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,9 +25,6 @@ namespace IRaCIS.Core.Application.Service
|
||||||
CreateMap<SubejctVisitDownload, VisitImageDownloadView>()
|
CreateMap<SubejctVisitDownload, VisitImageDownloadView>()
|
||||||
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
|
.ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.SubjectVisit.Subject.Code))
|
||||||
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
|
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName))
|
||||||
.ForMember(d => d.VisitImageFileCount, u => u.MapFrom(s => s.SubjectVisit.VisitImageFileCount))
|
|
||||||
.ForMember(d => d.VisitImageZipPath, u => u.MapFrom(s => s.SubjectVisit.VisitImageZipPath))
|
|
||||||
.ForMember(d => d.VisitImageZipSize, u => u.MapFrom(s => s.SubjectVisit.VisitImageZipSize))
|
|
||||||
.ForMember(d => d.DownloadTime, u => u.MapFrom(s => s.CreateTime))
|
.ForMember(d => d.DownloadTime, u => u.MapFrom(s => s.CreateTime))
|
||||||
.ForMember(d => d.DownloadUserName, u => u.MapFrom(s => s.CreateUser.UserName))
|
.ForMember(d => d.DownloadUserName, u => u.MapFrom(s => s.CreateUser.UserName))
|
||||||
.ForMember(d => d.StudyCount, u => u.MapFrom(s => s.SubjectVisit.StudyList.Count()))
|
.ForMember(d => d.StudyCount, u => u.MapFrom(s => s.SubjectVisit.StudyList.Count()))
|
||||||
|
@ -173,9 +170,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
.ForMember(d => d.SubjectShortName, u => u.MapFrom(s => s.Subject.ShortName))
|
.ForMember(d => d.SubjectShortName, u => u.MapFrom(s => s.Subject.ShortName))
|
||||||
.ForMember(d => d.TrialReadingCriterionName, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionName))
|
.ForMember(d => d.TrialReadingCriterionName, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionName))
|
||||||
.ForMember(d => d.CriterionType, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionType))
|
.ForMember(d => d.CriterionType, u => u.MapFrom(s => s.TrialReadingCriterion.CriterionType))
|
||||||
.ForMember(d => d.PatientList, u => u.MapFrom(s => s.Subject.SubjectPatientList))
|
.ForMember(d => d.PatientList, u => u.MapFrom(s => s.Subject.SubjectPatientList));
|
||||||
.ForMember(d => d.VisitImageZipPath, u => u.MapFrom(s => s.SourceSubjectVisit.VisitImageZipPath))
|
|
||||||
.ForMember(d => d.PackState, u => u.MapFrom(s => s.SourceSubjectVisit.PackState));
|
|
||||||
|
|
||||||
CreateMap<AddOrUpdateSubjectVisitCommand, SubjectVisit>().ReverseMap();
|
CreateMap<AddOrUpdateSubjectVisitCommand, SubjectVisit>().ReverseMap();
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,9 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public string IP { get; set; }
|
public string IP { get; set; }
|
||||||
|
|
||||||
|
|
||||||
[Required]
|
|
||||||
public Guid SubjectVisitId { get; set; }
|
public Guid SubjectVisitId { get; set; }
|
||||||
|
|
||||||
[ForeignKey("SubjectVisitId")]
|
[ForeignKey("SubjectVisitId")]
|
||||||
|
@ -28,6 +26,15 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
public SubjectVisit SubjectVisit { get; set; }
|
public SubjectVisit SubjectVisit { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public bool IsSuccess { get; set; }
|
||||||
|
|
||||||
|
public DateTime DownloadStartTime { get; set; }
|
||||||
|
public DateTime? DownloadEndTime { get; set; }
|
||||||
|
|
||||||
|
public int ImageCount { get; set; }
|
||||||
|
public long ImageSize { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -184,17 +184,5 @@ public class SubjectVisit : BaseFullDeleteAuditEntity
|
||||||
public ReadingStatusEnum ReadingStatus { get; set; }
|
public ReadingStatusEnum ReadingStatus { get; set; }
|
||||||
|
|
||||||
|
|
||||||
#region HIR 废弃
|
|
||||||
//文件数
|
|
||||||
public long VisitImageZipSize { get; set; }
|
|
||||||
|
|
||||||
//文件大小
|
|
||||||
public int VisitImageFileCount { get; set; }
|
|
||||||
|
|
||||||
public string VisitImageZipPath { get; set; } = string.Empty;
|
|
||||||
|
|
||||||
//路径
|
|
||||||
public PackState PackState { get; set; }
|
|
||||||
#endregion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -258,7 +258,7 @@ namespace IRaCIS.Core.Domain.Share
|
||||||
|
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var url = _accessor?.HttpContext?.Request?.Path.ToString();
|
var url = _accessor?.HttpContext?.Request?.Path.ToString()??string.Empty;
|
||||||
|
|
||||||
var list = url.Split('/').Where(t => !string.IsNullOrWhiteSpace(t)).ToList();
|
var list = url.Split('/').Where(t => !string.IsNullOrWhiteSpace(t)).ToList();
|
||||||
|
|
||||||
|
|
18661
IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.Designer.cs
generated
Normal file
18661
IRaCIS.Core.Infra.EFCore/Migrations/20241114064649_ImageDown.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,121 @@
|
||||||
|
using System;
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class ImageDown : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_SCPInstance_SCPStudy_StudyId",
|
||||||
|
table: "SCPInstance");
|
||||||
|
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
|
||||||
|
table: "SCPStudySubjectVisit");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "DownloadEndTime",
|
||||||
|
table: "SubejctVisitDownload",
|
||||||
|
type: "datetime2",
|
||||||
|
nullable: true);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<DateTime>(
|
||||||
|
name: "DownloadStartTime",
|
||||||
|
table: "SubejctVisitDownload",
|
||||||
|
type: "datetime2",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<int>(
|
||||||
|
name: "ImageCount",
|
||||||
|
table: "SubejctVisitDownload",
|
||||||
|
type: "int",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<long>(
|
||||||
|
name: "ImageSize",
|
||||||
|
table: "SubejctVisitDownload",
|
||||||
|
type: "bigint",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0L);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<bool>(
|
||||||
|
name: "IsSuccess",
|
||||||
|
table: "SubejctVisitDownload",
|
||||||
|
type: "bit",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: false);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_SCPInstance_SCPStudy_StudyId",
|
||||||
|
table: "SCPInstance",
|
||||||
|
column: "StudyId",
|
||||||
|
principalTable: "SCPStudy",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
|
||||||
|
table: "SCPStudySubjectVisit",
|
||||||
|
column: "SCPStudyId",
|
||||||
|
principalTable: "SCPStudy",
|
||||||
|
principalColumn: "Id",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_SCPInstance_SCPStudy_StudyId",
|
||||||
|
table: "SCPInstance");
|
||||||
|
|
||||||
|
migrationBuilder.DropForeignKey(
|
||||||
|
name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
|
||||||
|
table: "SCPStudySubjectVisit");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "DownloadEndTime",
|
||||||
|
table: "SubejctVisitDownload");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "DownloadStartTime",
|
||||||
|
table: "SubejctVisitDownload");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "ImageCount",
|
||||||
|
table: "SubejctVisitDownload");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "ImageSize",
|
||||||
|
table: "SubejctVisitDownload");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "IsSuccess",
|
||||||
|
table: "SubejctVisitDownload");
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_SCPInstance_SCPStudy_StudyId",
|
||||||
|
table: "SCPInstance",
|
||||||
|
column: "StudyId",
|
||||||
|
principalTable: "SCPStudy",
|
||||||
|
principalColumn: "SeqId",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
|
||||||
|
migrationBuilder.AddForeignKey(
|
||||||
|
name: "FK_SCPStudySubjectVisit_SCPStudy_SCPStudyId",
|
||||||
|
table: "SCPStudySubjectVisit",
|
||||||
|
column: "SCPStudyId",
|
||||||
|
principalTable: "SCPStudy",
|
||||||
|
principalColumn: "SeqId",
|
||||||
|
onDelete: ReferentialAction.Cascade);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
18647
IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.Designer.cs
generated
Normal file
18647
IRaCIS.Core.Infra.EFCore/Migrations/20241114085858_RemoveSubjectVisitInfo.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,63 @@
|
||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class RemoveSubjectVisitInfo : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "PackState",
|
||||||
|
table: "SubjectVisit");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "VisitImageFileCount",
|
||||||
|
table: "SubjectVisit");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "VisitImageZipPath",
|
||||||
|
table: "SubjectVisit");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "VisitImageZipSize",
|
||||||
|
table: "SubjectVisit");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<int>(
|
||||||
|
name: "PackState",
|
||||||
|
table: "SubjectVisit",
|
||||||
|
type: "int",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<int>(
|
||||||
|
name: "VisitImageFileCount",
|
||||||
|
table: "SubjectVisit",
|
||||||
|
type: "int",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<string>(
|
||||||
|
name: "VisitImageZipPath",
|
||||||
|
table: "SubjectVisit",
|
||||||
|
type: "nvarchar(400)",
|
||||||
|
maxLength: 400,
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: "");
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<long>(
|
||||||
|
name: "VisitImageZipSize",
|
||||||
|
table: "SubjectVisit",
|
||||||
|
type: "bigint",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0L);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -8102,11 +8102,26 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
b.Property<Guid>("CreateUserId")
|
b.Property<Guid>("CreateUserId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
b.Property<DateTime?>("DownloadEndTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
b.Property<DateTime>("DownloadStartTime")
|
||||||
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
b.Property<string>("IP")
|
b.Property<string>("IP")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasMaxLength(400)
|
.HasMaxLength(400)
|
||||||
.HasColumnType("nvarchar(400)");
|
.HasColumnType("nvarchar(400)");
|
||||||
|
|
||||||
|
b.Property<int>("ImageCount")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<long>("ImageSize")
|
||||||
|
.HasColumnType("bigint");
|
||||||
|
|
||||||
|
b.Property<bool>("IsSuccess")
|
||||||
|
.HasColumnType("bit");
|
||||||
|
|
||||||
b.Property<Guid>("SubjectVisitId")
|
b.Property<Guid>("SubjectVisitId")
|
||||||
.HasColumnType("uniqueidentifier");
|
.HasColumnType("uniqueidentifier");
|
||||||
|
|
||||||
|
@ -8801,9 +8816,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
b.Property<int>("PDState")
|
b.Property<int>("PDState")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
b.Property<int>("PackState")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<DateTime?>("PreliminaryAuditTime")
|
b.Property<DateTime?>("PreliminaryAuditTime")
|
||||||
.HasColumnType("datetime2");
|
.HasColumnType("datetime2");
|
||||||
|
|
||||||
|
@ -8867,17 +8879,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
.HasColumnType("int")
|
.HasColumnType("int")
|
||||||
.HasComment("0 未执行 1 执行了 2 不可用");
|
.HasComment("0 未执行 1 执行了 2 不可用");
|
||||||
|
|
||||||
b.Property<int>("VisitImageFileCount")
|
|
||||||
.HasColumnType("int");
|
|
||||||
|
|
||||||
b.Property<string>("VisitImageZipPath")
|
|
||||||
.IsRequired()
|
|
||||||
.HasMaxLength(400)
|
|
||||||
.HasColumnType("nvarchar(400)");
|
|
||||||
|
|
||||||
b.Property<long>("VisitImageZipSize")
|
|
||||||
.HasColumnType("bigint");
|
|
||||||
|
|
||||||
b.Property<string>("VisitName")
|
b.Property<string>("VisitName")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasMaxLength(400)
|
.HasMaxLength(400)
|
||||||
|
@ -16044,6 +16045,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
|
b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
|
||||||
.WithMany("InstanceList")
|
.WithMany("InstanceList")
|
||||||
.HasForeignKey("StudyId")
|
.HasForeignKey("StudyId")
|
||||||
|
.HasPrincipalKey("Id")
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
.IsRequired();
|
.IsRequired();
|
||||||
|
|
||||||
|
@ -16139,6 +16141,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
|
||||||
b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
|
b.HasOne("IRaCIS.Core.Domain.Models.SCPStudy", "SCPStudy")
|
||||||
.WithMany("SCPStudySubjectVisitList")
|
.WithMany("SCPStudySubjectVisitList")
|
||||||
.HasForeignKey("SCPStudyId")
|
.HasForeignKey("SCPStudyId")
|
||||||
|
.HasPrincipalKey("Id")
|
||||||
.OnDelete(DeleteBehavior.Cascade)
|
.OnDelete(DeleteBehavior.Cascade)
|
||||||
.IsRequired();
|
.IsRequired();
|
||||||
|
|
||||||
|
|
|
@ -1,144 +1,4 @@
|
||||||
kind: pipeline
|
|
||||||
type: ssh
|
|
||||||
name: ssh-linux-uat-irc-build-image
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: Linux
|
|
||||||
arch: 386
|
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true
|
|
||||||
|
|
||||||
server:
|
|
||||||
host: 47.117.164.182
|
|
||||||
user: root
|
|
||||||
password:
|
|
||||||
from_secret: test_ssh_pwd
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: build-uat-irc
|
|
||||||
commands:
|
|
||||||
- cd /opt/1panel/xc-deploy/Uat_IRC/devops-build-publish/Uat-To-Uat
|
|
||||||
- sh uat-branch-latest-build-image-publish.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- Uat_IRC_Net8
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: ssh
|
|
||||||
name: ssh-linux-test-irc-publish
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: Linux
|
|
||||||
arch: 386
|
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true
|
|
||||||
|
|
||||||
server:
|
|
||||||
host: 106.14.89.110
|
|
||||||
user: root
|
|
||||||
password:
|
|
||||||
from_secret: test_ssh_pwd
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: publish-test-irc
|
|
||||||
commands:
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_IRC/devops-build-publish;sh test-irc-update-or-create-stack.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- Test_IRC_Net8
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: ssh
|
|
||||||
name: ssh-linux-test-irc-scp-publish
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: Linux
|
|
||||||
arch: 386
|
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true
|
|
||||||
|
|
||||||
server:
|
|
||||||
host: 106.14.89.110
|
|
||||||
user: root
|
|
||||||
password:
|
|
||||||
from_secret: test_ssh_pwd
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: publish-test-irc-scp
|
|
||||||
commands:
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_IRC_SCP/devops-build-publish;sh pull-build-test-irc-scp-image.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_IRC_SCP ;sh update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- Test_IRC_Net8—_SCP_Disable
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: ssh
|
|
||||||
name: ssh-linux-test-study-publish
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: Linux
|
|
||||||
arch: 386
|
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true #禁用默认克隆
|
|
||||||
|
|
||||||
server:
|
|
||||||
host: 106.14.89.110
|
|
||||||
user: root
|
|
||||||
password:
|
|
||||||
from_secret: test_ssh_pwd
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: publish-test-study
|
|
||||||
commands:
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_Study/devops-build-publish ; sh pull-build-test-study-image.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_Study ;sh update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- Test_Study_Net8
|
|
||||||
|
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
type: ssh
|
|
||||||
name: ssh-linux-test-scp-publish
|
|
||||||
|
|
||||||
platform:
|
|
||||||
os: Linux
|
|
||||||
arch: 386
|
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true #禁用默认克隆
|
|
||||||
|
|
||||||
server:
|
|
||||||
host: 106.14.89.110
|
|
||||||
user: root
|
|
||||||
password:
|
|
||||||
from_secret: test_ssh_pwd
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: publish-test-hir-scp
|
|
||||||
commands:
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_HIR_SCP/devops-build-publish;sh pull-build-test-hir-scp-image.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
- cd /opt/1panel/xc-deploy/Test_HIR_SCP ;sh update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
trigger:
|
|
||||||
branch:
|
|
||||||
- Test_HIR
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: ssh
|
type: ssh
|
||||||
name: ssh-linux-test-hir-publish
|
name: ssh-linux-test-hir-publish
|
||||||
|
@ -146,23 +6,54 @@ name: ssh-linux-test-hir-publish
|
||||||
platform:
|
platform:
|
||||||
os: Linux
|
os: Linux
|
||||||
arch: 386
|
arch: 386
|
||||||
|
|
||||||
clone:
|
|
||||||
disable: true #禁用默认克隆
|
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
server:
|
server:
|
||||||
host: 106.14.89.110
|
host: 106.14.89.110
|
||||||
user: root
|
user: root
|
||||||
password:
|
password:
|
||||||
from_secret: test_ssh_pwd
|
from_secret: test_ssh_pwd
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: publish-test-hir
|
- name: publish-test-hir
|
||||||
commands:
|
commands:
|
||||||
- cd /opt/1panel/xc-deploy/Test_HIR/devops-build-publish;sh pull-build-test-hir-image.sh v${DRONE_BUILD_NUMBER}
|
- cd /opt/1panel/xc-deploy/Test_HIR_New/devops-build-publish;sh test_hir_net8.sh
|
||||||
- cd /opt/1panel/xc-deploy/Test_HIR ; sh update-image-if-need-then-pull-aliyun.sh v${DRONE_BUILD_NUMBER}
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- Test_HIR
|
- Test_HIR_Net8
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: ssh
|
||||||
|
name: ssh-linux-test-hir-scp-publish
|
||||||
|
|
||||||
|
platform:
|
||||||
|
os: Linux
|
||||||
|
arch: 386
|
||||||
|
|
||||||
|
clone:
|
||||||
|
disable: true
|
||||||
|
|
||||||
|
server:
|
||||||
|
host: 106.14.89.110
|
||||||
|
user: root
|
||||||
|
password:
|
||||||
|
from_secret: test_ssh_pwd
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: publish-test-hir-scp
|
||||||
|
commands:
|
||||||
|
- cd /opt/1panel/xc-deploy/Test_HIR_SCP_New/devops-build-publish;sh test_hir_scp_net8.sh
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- Test_HIR_Net8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue