(jobKey, j => j
+ .WithDescription("Trial regular work")
+ );
+ q.AddTrigger(t => t
+ .WithIdentity("TrialStatusTrigger")
+ .ForJob(jobKey)
+
+ .WithCronSchedule("0 0 * * * ?")//每小时执行一次
+ .WithDescription("My regular trial work trigger")
+ );
+ });
- //// ASP.NET Core hosting
- //services.AddQuartzServer(options =>
- //{
- // // when shutting down we want jobs to complete gracefully
- // options.WaitForJobsToComplete = true;
- //});
+ // ASP.NET Core hosting
+ services.AddQuartzHostedService(options =>
+ {
+ // when shutting down we want jobs to complete gracefully
+ options.WaitForJobsToComplete = true;
+ });
}
}
diff --git a/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs
index 4a16162e..56da182f 100644
--- a/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs
+++ b/IRaCIS.Core.API/_ServiceExtensions/Swagger/SwaggerSetup.cs
@@ -114,9 +114,11 @@ namespace IRaCIS.Core.API
//注意localhost:8001/swagger是访问不到的,去launchSettings.json把launchUrl去掉,如果你想换一个路径,直接写名字即可,比如直接写c.Route = "doc";
//options.RoutePrefix = string.Empty;
- var data = Assembly.GetExecutingAssembly().Location;
- options.IndexStream = () => Assembly.GetExecutingAssembly()
- .GetManifestResourceStream("IRaCIS.Core.API.wwwroot.swagger.ui.Index.html");
+
+
+
+ //options.IndexStream = () => Assembly.GetExecutingAssembly()
+ //.GetManifestResourceStream("IRaCIS.Core.API.wwwroot.swagger.ui.Index.html");
options.RoutePrefix = string.Empty;
diff --git a/IRaCIS.Core.API/appsettings.CertificateApply.json b/IRaCIS.Core.API/appsettings.CertificateApply.json
index 2c04ce92..6324d02d 100644
--- a/IRaCIS.Core.API/appsettings.CertificateApply.json
+++ b/IRaCIS.Core.API/appsettings.CertificateApply.json
@@ -7,21 +7,14 @@
}
},
"ConnectionStrings": {
- "RemoteNew": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_Certificate;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true",
- "Hangfire": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Hangfire_IRaCIS;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"
-
+ "RemoteNew": "Server=localhost;Database=IRaCIS;User ID=sa;Password=123456;TrustServerCertificate=true"
},
"BasicSystemConfig": {
-
- "OpenUserComplexPassword": false,
-
- "OpenSignDocumentBeforeWork": false,
-
+ "OpenUserComplexPassword": true,
+ "OpenSignDocumentBeforeWork": true,
"OpenTrialRelationDelete": true,
-
- "OpenLoginLimit": false
+ "OpenLoginLimit": true
},
-
"SystemEmailSendConfig": {
"Port": 465,
"Host": "smtp.qiye.aliyun.com",
@@ -29,5 +22,4 @@
"FromName": "Test_IRC",
"AuthorizationCode": "SHzyyl2021"
}
-
-}
+}
\ No newline at end of file
diff --git a/IRaCIS.Core.API/appsettings.Development.json b/IRaCIS.Core.API/appsettings.Development.json
index e9f58c77..d283f553 100644
--- a/IRaCIS.Core.API/appsettings.Development.json
+++ b/IRaCIS.Core.API/appsettings.Development.json
@@ -7,9 +7,7 @@
}
},
"ConnectionStrings": {
- "RemoteNew": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true",
- "Hangfire": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Hangfire_IRaCIS;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"
-
+ "RemoteNew": "Server=.;Database=IRaCIS;Trusted_Connection=True;TrustServerCertificate=true"
},
"BasicSystemConfig": {
diff --git a/IRaCIS.Core.API/appsettings.Production.json b/IRaCIS.Core.API/appsettings.Production.json
deleted file mode 100644
index 7daa550e..00000000
--- a/IRaCIS.Core.API/appsettings.Production.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "Microsoft": "Warning",
- "Microsoft.Hosting.Lifetime": "Information"
- }
- },
- //"RootUrl": "http://123.56.181.144:8060/",
- "ConnectionStrings": {
- "RemoteNew": "Server=101.132.193.237,1433;Database=IRaCIS.Production;User ID=sa;Password=zhanying2021;TrustServerCertificate=true",
- "Hangfire": "Server=101.132.193.237,1433;Database=Hangfire.IRaCIS.Production;User ID=sa;Password=zhanying2021;TrustServerCertificate=true"
- },
- "BasicSystemConfig": {
-
- "OpenUserComplexPassword": true,
-
- "OpenSignDocumentBeforeWork": true,
-
- "OpenLoginLimit": true
- },
- //"SystemEmailSendConfig": {
- // "Port": 465,
- // "Host": "smtp.163.com",
- // "FromEmail": "zhou941003@qq.com",
- // "FromName": "hangZhou",
- // "AuthorizationCode": "sqfhlpfdvnexbcab"
- //}
-
- "SystemEmailSendConfig": {
- "Port": 465,
- "Host": "smtp.qiye.aliyun.com",
- "FromEmail": "IRC@extimaging.com",
- "FromName": "IRC",
- "AuthorizationCode": "ExtImg@2022"
- }
-
-
-}
diff --git a/IRaCIS.Core.API/appsettings.Staging.json b/IRaCIS.Core.API/appsettings.Staging.json
deleted file mode 100644
index 79ee99b2..00000000
--- a/IRaCIS.Core.API/appsettings.Staging.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "Microsoft": "Warning",
- "Microsoft.Hosting.Lifetime": "Information"
- }
- },
- "ConnectionStrings": {
- "RemoteNew": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_Verify;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true",
- "Hangfire": "Server=123.56.94.154,1433\\MSSQLSERVER;Database=Hangfire_IRaCIS;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"
- },
- "BasicSystemConfig": {
-
- "OpenUserComplexPassword": true,
-
- "OpenSignDocumentBeforeWork": true,
-
- "OpenLoginLimit": true
-
- },
- "SystemEmailSendConfig": {
- "Port": 465,
- "Host": "smtp.qiye.aliyun.com",
- "FromEmail": "uat@extimaging.com",
- "FromName": "UAT_IRC",
- "AuthorizationCode": "SHzyyl2021"
- }
-
-
-}
diff --git a/IRaCIS.Core.API/appsettings.USDemo.json b/IRaCIS.Core.API/appsettings.USDemo.json
deleted file mode 100644
index 2f062f04..00000000
--- a/IRaCIS.Core.API/appsettings.USDemo.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "Logging": {
- "LogLevel": {
- "Default": "Information",
- "Microsoft": "Warning",
- "Microsoft.Hosting.Lifetime": "Information"
- }
- },
- "ConnectionStrings": {
- "RemoteNew": "Server=47.90.161.85,1433\\MSSQLSERVER;Database=IRaCIS_Demo_US;User ID=sa;Password=zhanying2021;TrustServerCertificate=true",
- "Hangfire": "Server=47.90.161.85,1433\\MSSQLSERVER;Database=Hangfire.IRaCIS_Demo_US;User ID=sa;Password=zhanying2021;TrustServerCertificate=true"
-
- },
- "BasicSystemConfig": {
-
- "OpenUserComplexPassword": false,
-
- "OpenSignDocumentBeforeWork": false,
-
- "OpenTrialRelationDelete": true,
-
- "OpenLoginLimit": false
- },
-
- "SystemEmailSendConfig": {
- "Port": 465,
- "Host": "smtp.qiye.aliyun.com",
- "FromEmail": "test@extimaging.com",
- "FromName": "Test_IRC",
- "AuthorizationCode": "SHzyyl2021"
- }
-
-}
diff --git a/IRaCIS.Core.API/appsettings.json b/IRaCIS.Core.API/appsettings.json
index c200d077..ac43d2e7 100644
--- a/IRaCIS.Core.API/appsettings.json
+++ b/IRaCIS.Core.API/appsettings.json
@@ -1,7 +1,4 @@
{
- "ConnectionStrings": {
- "hang": "Server=ZHOU;Database=IRaCIS;User ID=sa;Password=sa123456;"
- },
"JwtSetting": {
"SecurityKey": "3e6dbfa227234a03977a2f421bdb7f4f", // 密钥
"Issuer": "IRaCIS", // 颁发者
@@ -73,12 +70,13 @@
"QCChallengeCodePrefix": "Q",
"NoneDicomStudyCodePrefix": "NST",
+
"DicomStudyCodePrefix": "ST",
"SystemSiteCodePrefix": "S",
- "DefaultPassword": "123456",
+ "DefaultPassword": "EIImage@2023",
"DefaultInternalOrganizationName": "ExtImaging",
diff --git a/IRaCIS.Core.API/favicon.ico b/IRaCIS.Core.API/favicon.ico
new file mode 100644
index 00000000..70e9d37f
Binary files /dev/null and b/IRaCIS.Core.API/favicon.ico differ
diff --git a/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminAddUser.html b/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminAddUser.html
index 9191707f..aabdcaf7 100644
--- a/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminAddUser.html
+++ b/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminAddUser.html
@@ -11,7 +11,7 @@
尊敬的 {0} ,您好:
- 展影医疗为您添加了账户,账户信息如下:
+ 行藏医学影像处理软件系统为您添加了账户,账户信息如下:
@@ -32,7 +32,7 @@
祝您顺利!/Best Regards
-
上海展影医疗科技有限公司
+
武汉行藏科技有限公司
diff --git a/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminResetUser.html b/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminResetUser.html
index e8121618..8f8bb433 100644
--- a/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminResetUser.html
+++ b/IRaCIS.Core.API/wwwroot/EmailTemplate/AdminResetUser.html
@@ -11,7 +11,7 @@
尊敬的 {0} ,您好:
- 展影医疗将您的账户密码已重置,账户信息如下:
+ 行藏医学影像处理软件系统将您的账户密码已重置,账户信息如下:
@@ -29,7 +29,7 @@
祝您顺利!/Best Regards
-
上海展影医疗科技有限公司
+
武汉行藏科技有限公司
diff --git a/IRaCIS.Core.API/wwwroot/EmailTemplate/EmailConfigTest.html b/IRaCIS.Core.API/wwwroot/EmailTemplate/EmailConfigTest.html
index 0d184d0a..6f1d3a5d 100644
--- a/IRaCIS.Core.API/wwwroot/EmailTemplate/EmailConfigTest.html
+++ b/IRaCIS.Core.API/wwwroot/EmailTemplate/EmailConfigTest.html
@@ -11,7 +11,7 @@
您好:
- 感谢您使用展影云平台。
+ 感谢您使用行藏医学影像处理软件。
{0}。
@@ -19,7 +19,7 @@
祝您顺利!/Best Regards
-
上海展影医疗科技有限公司
+
武汉行藏科技有限公司
diff --git a/IRaCIS.Core.API/wwwroot/EmailTemplate/UserOptCommon.html b/IRaCIS.Core.API/wwwroot/EmailTemplate/UserOptCommon.html
index 90dbb7d4..f21fa50f 100644
--- a/IRaCIS.Core.API/wwwroot/EmailTemplate/UserOptCommon.html
+++ b/IRaCIS.Core.API/wwwroot/EmailTemplate/UserOptCommon.html
@@ -11,7 +11,7 @@
{0}您好:
- 感谢您使用展影云平台。
+ 感谢您使用行藏医学影像处理软件。
{1},验证码是: {2},请在3分钟内输入该验证码,进行后续操作。如非本人操作,请忽略该邮件。
@@ -19,7 +19,7 @@
祝您顺利!/Best Regards
-
上海展影医疗科技有限公司
+
武汉行藏科技有限公司
diff --git a/IRaCIS.Core.Application/AOP/QANoticeAOP.cs b/IRaCIS.Core.Application/AOP/QANoticeAOP.cs
index 0e80ae3a..79ea5771 100644
--- a/IRaCIS.Core.Application/AOP/QANoticeAOP.cs
+++ b/IRaCIS.Core.Application/AOP/QANoticeAOP.cs
@@ -55,17 +55,17 @@
// NoticeTypeEnum = NoticeType.NotNeedNotice,
// NeedDeal = false,
// StudyStatusStr = "Uploaded",
-// Message = $"CRC : {_userInfo.RealName} has uploaded {study.StudyCode} ",
+// Message = $"IC : {_userInfo.RealName} has uploaded {study.StudyCode} ",
// SendTime = DateTime.Now,
// });
// }
// #region 处理QA通知模块
-// //查询项目的参与者 和 负责site下CRC用户
+// //查询项目的参与者 和 负责site下IC用户
// var trialUserList = _userTrialRepository.Where(t => t.TrialId == study.TrialId).ToList();
-// // 找到该study 关联Site 下的CRC
+// // 找到该study 关联Site 下的IC
// var crcList = _userTrialSiteRepository.Where(t =>
// t.SiteId == study.SiteId && t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && t.TrialId == study.TrialId).ToList();
@@ -78,11 +78,11 @@
-// // CRC =>QA
+// // IC =>QA
// if (studyStatus.Status == (int)StudyStatus.QARequested)
// {
-// //找出当前操作的CRC
-// //PM 或者admin可以代替CRC角色 不能从CRC列表中查询用户
+// //找出当前操作的IC
+// //PM 或者admin可以代替IC角色 不能从IC列表中查询用户
// //var currentCRC = trialUserList.First(t => t.UserId == _userInfo.Id);
// var notice = new QANotice()
@@ -100,7 +100,7 @@
// NeedDeal = true,
// StudyStatusStr = "QA Requested",
// Message =
-// $"CRC -> QA : {_userInfo.RealName} request QA {study.StudyCode} , Inquiry can be performed! ",
+// $"IC -> QA : {_userInfo.RealName} request QA {study.StudyCode} , Inquiry can be performed! ",
// SendTime = DateTime.Now,
// };
@@ -128,18 +128,18 @@
// });
// }
-// // QA =>CRC 向CRC推送消息影像有问题 同时作为 requestToQA 的边界
+// // QA =>IC 向IC推送消息影像有问题 同时作为 requestToQA 的边界
// else if (studyStatus.Status == (int)StudyStatus.QAing)
// {
// //找出当前操作的QA 如果是pm 或者admin 代替操作 此时会有问题 所以 谁代替,就以谁的名义执行
// //var currentQA = qaList.First(t => t.UserId == _userInfo.Id);
// //var currentQA = trialUserList.First(t => t.UserId == _userInfo.Id);
-// //在项目CRC列表中筛选出 负责该study关联 site的CRC
+// //在项目IC列表中筛选出 负责该study关联 site的IC
// var siteCRCList = _userTrialSiteRepository.Where(t =>
// t.SiteId == study.SiteId && t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && t.TrialId == study.TrialId).ToList();
-// //查询项目的参与者 和 负责site下CRC用户
+// //查询项目的参与者 和 负责site下IC用户
@@ -156,7 +156,7 @@
// NoticeTypeEnum = NoticeType.QA_InQA_NoticeCRC,
// NeedDeal = true,
// StudyStatusStr = "In QA",
-// Message = $"QA -> CRC : {_userInfo.RealName} inquiry {study.StudyCode} ",
+// Message = $"QA -> IC : {_userInfo.RealName} inquiry {study.StudyCode} ",
// SendTime = DateTime.Now,
// };
@@ -169,7 +169,7 @@
// ToUserType = t.UserTypeRole.UserTypeShortName
// }));
-// //添加 发送给CRC的消息 消息和CRC是 一对多
+// //添加 发送给IC的消息 消息和IC是 一对多
// _qaNoticeRepository.Add(notice);
@@ -228,7 +228,7 @@
// _qaNoticeRepository.Add(notice);
-// //处理 消息 标记已处理 存在意外情况 qa发给CRC的 但是qa里面设置了 通过或者不通过 此时qa发送的消息也设置为已处理
+// //处理 消息 标记已处理 存在意外情况 qa发给IC的 但是qa里面设置了 通过或者不通过 此时qa发送的消息也设置为已处理
// var needDealNoticeList = _qaNoticeRepository.AsQueryable()
// .Where(t => t.SubjectVisitId == study.Id && t.NeedDeal &&
// (t.NoticeTypeEnum == NoticeType.CRC_RequestToQA_NoticeQA ||
@@ -248,7 +248,7 @@
// }
-// // QA =>CRC 暂时不用发送消息给CRC 因为CRC 暂时没有入口回复 同时作为 requestToQA 的边界
+// // QA =>IC 暂时不用发送消息给IC 因为IC 暂时没有入口回复 同时作为 requestToQA 的边界
// else if (studyStatus.Status == (int)StudyStatus.QAFInishNotPass)
// {
@@ -298,24 +298,24 @@
// var study = _studyRepository.FirstOrDefault(t => t.Id == studyId);
// var status = study.Status;
-// //处理CRC 重传时 QA消息
+// //处理IC 重传时 QA消息
// if (status == (int)StudyStatus.QAing)
// {
-// //查询项目的参与者 和 负责site下CRC用户
+// //查询项目的参与者 和 负责site下IC用户
// var trialUserList = _userTrialRepository.Where(t => t.TrialId == study.TrialId).ToList();
-// // 找到该study 关联Site 下的CRC
+// // 找到该study 关联Site 下的IC
// var crcList = _userTrialSiteRepository.Where(t =>
// t.SiteId == study.SiteId && t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && t.TrialId == study.TrialId).ToList();
// var qaList = trialUserList.Where(t => t.User.UserTypeEnum == UserTypeEnum.IQC).ToList();
-// //CRC =>QA CRC的职能被PM 或者admin代替
+// //IC =>QA IC的职能被PM 或者admin代替
// //if (_userInfo.UserTypeEnumInt == (int)UserType.ClinicalResearchCoordinator)
// {
-// //PM 或者admin可以代替CRC角色 不能从CRC列表中查询用户
+// //PM 或者admin可以代替IC角色 不能从IC列表中查询用户
// //var currentCRC = trialUserList.First(t => t.UserId == _userInfo.Id);
// var notice = new QANotice()
@@ -330,7 +330,7 @@
// FromUserType = _userInfo.UserTypeShortName,
// NoticeTypeEnum = NoticeType.CRC_ReUpload_NoticeQA,
// NeedDeal = true,
-// Message = $"CRC -> QA :{_userInfo.RealName} has reuploaded {study.StudyCode} , Need to be inquiry again",
+// Message = $"IC -> QA :{_userInfo.RealName} has reuploaded {study.StudyCode} , Need to be inquiry again",
// SendTime = DateTime.Now
// };
@@ -345,7 +345,7 @@
// _qaNoticeRepository.Add(notice);
-// //这里作为 QA 设置 Inqa 状态的回复 或者QA和CRC对话的
+// //这里作为 QA 设置 Inqa 状态的回复 或者QA和IC对话的
// var needDealNoticeList = _qaNoticeRepository.Where(t => t.SubjectVisitId == study.Id && t.NeedDeal
// && (t.NoticeTypeEnum == NoticeType.QA_InQA_NoticeCRC || t.NoticeTypeEnum == NoticeType.QA_QARecordDialogPost_NoticeCRC))
// .ToList();
@@ -377,10 +377,10 @@
// #region 处理QA通知 匿名化完毕 通知PM
-// //查询项目的参与者 和 负责site下CRC用户
+// //查询项目的参与者 和 负责site下IC用户
// var trialUserList = _userTrialRepository.Where(t => t.TrialId == study.TrialId).ToList();
-// // 找到该study 关联Site 下的CRC
+// // 找到该study 关联Site 下的IC
// var crcList = _userTrialSiteRepository.Where(t =>
// t.SiteId == study.SiteId && t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator && t.TrialId == study.TrialId).ToList();
diff --git a/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs b/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs
index 994cbbc9..e469ec2e 100644
--- a/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs
+++ b/IRaCIS.Core.Application/Auth/IRaCISPolicy.cs
@@ -10,10 +10,7 @@ namespace IRaCIS.Core.Application.Auth
public static class IRaCISPolicy
{
-
-
-
- public const string CRC = "CRC";
+ public const string IC = "IC";
public const string PM = "PM";
diff --git a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs
index dcc0f40a..e3be2747 100644
--- a/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs
+++ b/IRaCIS.Core.Application/BackGroundJob/CacheTrialStatusQuartZJob.cs
@@ -7,6 +7,7 @@ using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Models;
using Microsoft.Extensions.Logging;
using Quartz;
+using IRaCIS.Core.Domain.Share;
namespace IRaCIS.Application.Services.BackGroundJob
{
@@ -17,36 +18,55 @@ namespace IRaCIS.Application.Services.BackGroundJob
private readonly IRepository _trialRepository;
private readonly IEasyCachingProvider _provider;
private readonly ILogger _logger;
+ private readonly IRepository _systemAnonymizationRepository;
- public CacheTrialStatusQuartZJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger)
+ public CacheTrialStatusQuartZJob(IRepository trialRepository, IEasyCachingProvider provider,ILogger logger, IRepository systemAnonymizationRepository)
{
_trialRepository = trialRepository;
_provider = provider;
_logger = logger;
+ _systemAnonymizationRepository = systemAnonymizationRepository;
}
- public Task Execute(IJobExecutionContext context)
+ public async Task Execute(IJobExecutionContext context)
{
_logger.LogInformation($"开始执行QuartZ定时任务作业");
try
{
- var list = _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr })
- .ToList();
+ await MemoryCacheTrialStatus();
+
+ await MemoryCacheAnonymizeData();
- list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(1)));
-
}
catch (Exception e)
{
_logger.LogError($" 查询和缓存过程出现异常"+e.Message);
}
_logger.LogInformation("QuartZ定时任务作业结束");
- return Task.CompletedTask;
}
-
-
+ public async Task MemoryCacheTrialStatus()
+ {
+ var list = await _trialRepository.Select(t => new { TrialId = t.Id, TrialStatusStr = t.TrialStatusStr })
+ .ToListAsync();
+
+ list.ForEach(t => _provider.Set(t.TrialId.ToString(), t.TrialStatusStr, TimeSpan.FromDays(7)));
+
+ }
+
+ public async Task MemoryCacheAnonymizeData()
+ {
+ var systemAnonymizationList = await _systemAnonymizationRepository.Where(t => t.IsEnable).ToListAsync();
+
+ _provider.Set(StaticData.Anonymize.Anonymize_AddFixedFiled, systemAnonymizationList.Where(t => t.IsAdd && t.IsFixed).ToList(), TimeSpan.FromDays(7));
+ _provider.Set(StaticData.Anonymize.Anonymize_AddIRCInfoFiled, systemAnonymizationList.Where(t => t.IsAdd && t.IsFixed == false).ToList(), TimeSpan.FromDays(7));
+ _provider.Set(StaticData.Anonymize.Anonymize_FixedField, systemAnonymizationList.Where(t => t.IsAdd == false && t.IsFixed).ToList(), TimeSpan.FromDays(7));
+ _provider.Set(StaticData.Anonymize.Anonymize_IRCInfoField, systemAnonymizationList.Where(t => t.IsAdd == false && t.IsFixed == false).ToList(), TimeSpan.FromDays(7));
+ }
+
+
+
}
}
\ No newline at end of file
diff --git a/IRaCIS.Core.Application/BackGroundJob/ObtainTaskAutoCancelJob.cs b/IRaCIS.Core.Application/BackGroundJob/ObtainTaskAutoCancelJob.cs
index ebd09161..94011887 100644
--- a/IRaCIS.Core.Application/BackGroundJob/ObtainTaskAutoCancelJob.cs
+++ b/IRaCIS.Core.Application/BackGroundJob/ObtainTaskAutoCancelJob.cs
@@ -30,7 +30,7 @@ namespace IRaCIS.Core.Application.BackGroundJob
var success = await _subjectVisitRepository.SaveChangesAsync();
- _logger.LogWarning($"任务建立时间:{startTime} 取消时间:{DateTime.Now} 取消 受试者访视:{ subjectVisitId }success:{success}");
+ _logger.LogWarning($"任务建立时间:{startTime} 取消时间:{DateTime.Now} 取消 患者检查批次:{ subjectVisitId }success:{success}");
}
catch (Exception e)
{
diff --git a/IRaCIS.Core.Application/BusinessFilter/TrialAuditFilter.cs b/IRaCIS.Core.Application/BusinessFilter/TrialAuditFilter.cs
index a614a1e6..578431f4 100644
--- a/IRaCIS.Core.Application/BusinessFilter/TrialAuditFilter.cs
+++ b/IRaCIS.Core.Application/BusinessFilter/TrialAuditFilter.cs
@@ -45,11 +45,11 @@ public enum AuditOptType
AddTrialSite = 5,
DeleteTrialSite = 6,
- //Site CRC
+ //Site IC
AddTrialSiteCRC = 7,
DeleteTrialSiteCRC = 8,
- //访视计划
+ //检查批次计划
AddOrUpdateTrialVisitPlanItem = 9,
DeleteTrialVisitPlanItem = 10,
ConfirmTrialVisitPlan = 11,
@@ -58,7 +58,7 @@ public enum AuditOptType
AddOrUpdateTrialTemplate = 12,
DeleteTrialTemplate = 13,
- //subject 访视计划
+ //subject 检查批次计划
AddOrUpdateSubjectOutPlanVisit = 14,
DeleteSubjectOutPlanVisit = 15,
SetSVExecuted = 16,
@@ -355,7 +355,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // //删除项目Site CRC
+// // //删除项目Site IC
// // case AuditOptType.DeleteTrialSiteCRC:
// // if (result.IsSuccess)
@@ -378,7 +378,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // //添加访视计划Item
+// // //添加检查批次计划Item
// // case AuditOptType.AddOrUpdateTrialVisitPlanItem:
// // //接口参数
// // var visitPlanItem = (VisitPlanCommand)_actionArguments.Values.ToList()[0];
@@ -390,7 +390,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = visitPlanItem.TrialId,
// // SubjectId = Guid.Empty,
// // AuditType = (int)AuditType.TrialAudit,
-// // Note = visitPlanItem.Id == null ? $"{ _userRealName} 添加了访视计划项 {visitPlanItem.VisitName} " : $"{ _userRealName} 更新了访视计划项为 {visitPlanItem.VisitName} ",
+// // Note = visitPlanItem.Id == null ? $"{ _userRealName} 添加了检查批次计划项 {visitPlanItem.VisitName} " : $"{ _userRealName} 更新了检查批次计划项为 {visitPlanItem.VisitName} ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -399,7 +399,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // //删除访视计划Item
+// // //删除检查批次计划Item
// // case AuditOptType.DeleteTrialVisitPlanItem:
// // if (result.IsSuccess)
@@ -409,7 +409,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = _visitPlan.TrialId,
// // SubjectId = Guid.Empty,
// // AuditType = (int)AuditType.TrialAudit,
-// // Note = $"{ _userRealName} 移除了访视计划项 {_visitPlan.VisitName} ",
+// // Note = $"{ _userRealName} 移除了检查批次计划项 {_visitPlan.VisitName} ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -418,7 +418,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // //确认了访视计划
+// // //确认了检查批次计划
// // case AuditOptType.ConfirmTrialVisitPlan:
// // var trialId = (Guid)_actionArguments.Values.ToList()[0];
@@ -429,7 +429,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = trialId,
// // SubjectId = Guid.Empty,
// // AuditType = (int)AuditType.TrialAudit,
-// // Note = $"{ _userRealName} 确认了访视计划,不允许修改 ",
+// // Note = $"{ _userRealName} 确认了检查批次计划,不允许修改 ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -484,13 +484,13 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // //受试者审计
+// // //患者审计
// // case AuditType.SubjectAudit:
// // switch (_attr._auditOptType)
// // {
-// // // 添加或者更新受试者
+// // // 添加或者更新患者
// // case AuditOptType.AddOrUpdateSubject:
// // //接口参数
@@ -503,7 +503,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = subject.TrialId,
// // SubjectId = subject.Id == null ? Guid.Parse(result.Data) : subject.Id.Value,
// // AuditType = (int)AuditType.SubjectAudit,
-// // Note = subject.Id == null ? $"{ _userRealName} 添加了受试者 {subject.LastName + subject.FirstName} 并初始化了访视计划" : $"{ _userRealName} 对受试者 { subject.LastName + subject.FirstName} 信息进行了更新 ",
+// // Note = subject.Id == null ? $"{ _userRealName} 添加了患者 {subject.LastName + subject.FirstName} 并初始化了检查批次计划" : $"{ _userRealName} 对患者 { subject.LastName + subject.FirstName} 信息进行了更新 ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -512,7 +512,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // // 删除受试者
+// // // 删除患者
// // case AuditOptType.DeleteSubject:
// // if (result.IsSuccess)
// // {
@@ -521,7 +521,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = _subject.TrialId,
// // SubjectId = _subject.Id,
// // AuditType = (int)AuditType.SubjectAudit,
-// // Note = $"{ _userRealName} 移除了受试者 {_subject.LastName + _subject.FirstName} ",
+// // Note = $"{ _userRealName} 移除了患者 {_subject.LastName + _subject.FirstName} ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -530,7 +530,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // // 受试者计划外访视
+// // // 患者计划外检查批次
// // case AuditOptType.AddOrUpdateSubjectOutPlanVisit:
// // //接口参数
@@ -549,7 +549,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = _subject.TrialId,
// // SubjectId = _subject.Id,
// // AuditType = (int)AuditType.SubjectAudit,
-// // Note = subjectVisit.Id == null ? $"{ _userRealName} 为受试者 {_subject.LastName + _subject.FirstName} 添加了计划外访视 {subjectVisit.VisitName}" : $"{ _userRealName} 更新受试者 {_subject.LastName + _subject.FirstName} 计划外访视{subjectVisit.VisitName}",
+// // Note = subjectVisit.Id == null ? $"{ _userRealName} 为患者 {_subject.LastName + _subject.FirstName} 添加了计划外检查批次 {subjectVisit.VisitName}" : $"{ _userRealName} 更新患者 {_subject.LastName + _subject.FirstName} 计划外检查批次{subjectVisit.VisitName}",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -558,7 +558,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // }
// // break;
-// // // 删除计划外访视
+// // // 删除计划外检查批次
// // case AuditOptType.DeleteSubjectOutPlanVisit:
// // if (result.IsSuccess)
@@ -568,7 +568,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = _subjectVisit.TrialId,
// // SubjectId = _subject.Id,
// // AuditType = (int)AuditType.SubjectAudit,
-// // Note = $"{ _userRealName} 移除了受试者{_subject.LastName + _subject.FirstName} 计划外访视 {_subjectVisit.VisitName} ",
+// // Note = $"{ _userRealName} 移除了患者{_subject.LastName + _subject.FirstName} 计划外检查批次 {_subjectVisit.VisitName} ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -587,7 +587,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // TrialId = _subjectVisit.TrialId,
// // SubjectId = _subject.Id,
// // AuditType = (int)AuditType.SubjectAudit,
-// // Note = $"{ _userRealName} 将受试者 {_subject.LastName + _subject.FirstName} 访视 {_subjectVisit.VisitName} 设置为已执行 ",
+// // Note = $"{ _userRealName} 将患者 {_subject.LastName + _subject.FirstName} 检查批次 {_subjectVisit.VisitName} 设置为已执行 ",
// // Detail = string.Empty,
// // OptUserId = Guid.Parse(_userIdStr),
// // OptUser = _userRealName,
@@ -700,7 +700,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // //删除项目运维人员
// // case AuditOptType.DeleteTrailStaff:
-// // // 删除项目Site CRC
+// // // 删除项目Site IC
// // case AuditOptType.DeleteTrialSiteCRC:
// // //接口参数
@@ -756,7 +756,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// // break;
-// // //受试者审计
+// // //患者审计
// // case AuditType.SubjectAudit:
// // switch (_auditOptType)
@@ -920,7 +920,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// _userTrial = _userTrialRepository.AsQueryable().Include(t => t.User).FirstOrDefault(t => t.Id == userTrial);
// break;
-// // 删除项目Site CRC
+// // 删除项目Site IC
// case AuditOptType.DeleteTrialSiteCRC:
// //接口参数
@@ -969,7 +969,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// break;
-// //受试者审计
+// //患者审计
// case AuditType.SubjectAudit:
// switch (_auditOptType)
@@ -1258,7 +1258,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// //删除项目Site CRC
+// //删除项目Site IC
// case AuditOptType.DeleteTrialSiteCRC:
// if (result.IsSuccess)
@@ -1281,7 +1281,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// //添加访视计划Item
+// //添加检查批次计划Item
// case AuditOptType.AddOrUpdateTrialVisitPlanItem:
// //接口参数
// var visitPlanItem = (VisitPlanCommand)_actionArguments.Values.ToList()[0];
@@ -1293,7 +1293,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = visitPlanItem.TrialId,
// SubjectId = Guid.Empty,
// AuditType = (int)AuditType.TrialAudit,
-// Note = visitPlanItem.Id == null ? $"{ _userRealName} 添加了访视计划项 {visitPlanItem.VisitName} " : $"{ _userRealName} 更新了访视计划项为 {visitPlanItem.VisitName} ",
+// Note = visitPlanItem.Id == null ? $"{ _userRealName} 添加了检查批次计划项 {visitPlanItem.VisitName} " : $"{ _userRealName} 更新了检查批次计划项为 {visitPlanItem.VisitName} ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1302,7 +1302,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// //删除访视计划Item
+// //删除检查批次计划Item
// case AuditOptType.DeleteTrialVisitPlanItem:
// if (result.IsSuccess)
@@ -1312,7 +1312,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = _visitPlan.TrialId,
// SubjectId = Guid.Empty,
// AuditType = (int)AuditType.TrialAudit,
-// Note = $"{ _userRealName} 移除了访视计划项 {_visitPlan.VisitName} ",
+// Note = $"{ _userRealName} 移除了检查批次计划项 {_visitPlan.VisitName} ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1321,7 +1321,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// //确认了访视计划
+// //确认了检查批次计划
// case AuditOptType.ConfirmTrialVisitPlan:
// var trialId = (Guid)_actionArguments.Values.ToList()[0];
@@ -1332,7 +1332,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = trialId,
// SubjectId = Guid.Empty,
// AuditType = (int)AuditType.TrialAudit,
-// Note = $"{ _userRealName} 确认了访视计划,不允许修改 ",
+// Note = $"{ _userRealName} 确认了检查批次计划,不允许修改 ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1364,13 +1364,13 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// //受试者审计
+// //患者审计
// case AuditType.SubjectAudit:
// switch (_attr._auditOptType)
// {
-// // 添加或者更新受试者
+// // 添加或者更新患者
// case AuditOptType.AddOrUpdateSubject:
// //接口参数
@@ -1383,7 +1383,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = subject.TrialId,
// SubjectId = subject.Id == null ? Guid.Parse(result.Data) : subject.Id.Value,
// AuditType = (int)AuditType.SubjectAudit,
-// Note = subject.Id == null ? $"{ _userRealName} 添加了受试者 {subject.ShortName } 并初始化了访视计划" : $"{ _userRealName} 对受试者 { subject.ShortName } 信息进行了更新 ",
+// Note = subject.Id == null ? $"{ _userRealName} 添加了患者 {subject.ShortName } 并初始化了检查批次计划" : $"{ _userRealName} 对患者 { subject.ShortName } 信息进行了更新 ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1392,7 +1392,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// // 删除受试者
+// // 删除患者
// case AuditOptType.DeleteSubject:
// if (result.IsSuccess)
// {
@@ -1401,7 +1401,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = _subject.TrialId,
// SubjectId = _subject.Id,
// AuditType = (int)AuditType.SubjectAudit,
-// Note = $"{ _userRealName} 移除了受试者 {_subject.LastName + _subject.FirstName} ",
+// Note = $"{ _userRealName} 移除了患者 {_subject.LastName + _subject.FirstName} ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1410,7 +1410,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// // 受试者计划外访视
+// // 患者计划外检查批次
// case AuditOptType.AddOrUpdateSubjectOutPlanVisit:
// //接口参数
@@ -1429,7 +1429,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = _subject.TrialId,
// SubjectId = _subject.Id,
// AuditType = (int)AuditType.SubjectAudit,
-// Note = subjectVisit.Id == null ? $"{ _userRealName} 为受试者 {_subject.LastName + _subject.FirstName} 添加了计划外访视 {subjectVisit.VisitName}" : $"{ _userRealName} 更新受试者 {_subject.LastName + _subject.FirstName} 计划外访视{subjectVisit.VisitName}",
+// Note = subjectVisit.Id == null ? $"{ _userRealName} 为患者 {_subject.LastName + _subject.FirstName} 添加了计划外检查批次 {subjectVisit.VisitName}" : $"{ _userRealName} 更新患者 {_subject.LastName + _subject.FirstName} 计划外检查批次{subjectVisit.VisitName}",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1438,7 +1438,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// }
// break;
-// // 删除计划外访视
+// // 删除计划外检查批次
// case AuditOptType.DeleteSubjectOutPlanVisit:
// if (result.IsSuccess)
@@ -1448,7 +1448,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = _subjectVisit.TrialId,
// SubjectId = _subject.Id,
// AuditType = (int)AuditType.SubjectAudit,
-// Note = $"{ _userRealName} 移除了受试者{_subject.LastName + _subject.FirstName} 计划外访视 {_subjectVisit.VisitName} ",
+// Note = $"{ _userRealName} 移除了患者{_subject.LastName + _subject.FirstName} 计划外检查批次 {_subjectVisit.VisitName} ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
@@ -1467,7 +1467,7 @@ public class TrialAuditAttribute : Attribute,/*IActionFilter, */IAsyncActionFilt
// TrialId = _subjectVisit.TrialId,
// SubjectId = _subject.Id,
// AuditType = (int)AuditType.SubjectAudit,
-// Note = $"{ _userRealName} 将受试者 {_subject.LastName + _subject.FirstName} 访视 {_subjectVisit.VisitName} 设置为已执行 ",
+// Note = $"{ _userRealName} 将患者 {_subject.LastName + _subject.FirstName} 检查批次 {_subjectVisit.VisitName} 设置为已执行 ",
// Detail = string.Empty,
// OptUserId = Guid.Parse(_userIdStr),
// OptUser = _userRealName,
diff --git a/IRaCIS.Core.Application/Helper/FileStoreHelper.cs b/IRaCIS.Core.Application/Helper/FileStoreHelper.cs
index e8da8a52..19ced478 100644
--- a/IRaCIS.Core.Application/Helper/FileStoreHelper.cs
+++ b/IRaCIS.Core.Application/Helper/FileStoreHelper.cs
@@ -491,7 +491,7 @@ public static class FileStoreHelper
{
var rootPath = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment);
- //加入访视层级 和Data
+ //加入检查批次层级 和Data
var path = Path.Combine(rootPath, StaticData.Folder.TrialDataFolder, trialId.ToString(),
siteId.ToString(), subjectId.ToString(), subjectVisitId.ToString(), StaticData.Folder.DicomFolder, studyId.ToString());
diff --git a/IRaCIS.Core.Application/Helper/NpoiWordHelper.cs b/IRaCIS.Core.Application/Helper/NpoiWordHelper.cs
deleted file mode 100644
index 2e993214..00000000
--- a/IRaCIS.Core.Application/Helper/NpoiWordHelper.cs
+++ /dev/null
@@ -1,171 +0,0 @@
-
-using IRaCIS.Core.Application.Helper;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Mvc;
-using NPOI.OpenXmlFormats.Wordprocessing;
-using NPOI.XWPF.UserModel;
-using System.Collections;
-using System.Reflection;
-
-namespace IRaCIS.Core.Application.Service;
-
-public static class NpoiWordHelper
-{
- public static async Task TemplateExportWordAsync(string code, object data, IRepository? _commonDocumentRepository, IWebHostEnvironment _hostEnvironment)
- {
- //var (physicalPath, fileNmae) = await FileStoreHelper.GetCommonDocPhysicalFilePathAsync(_hostEnvironment, _commonDocumentRepository, code);
-
- var physicalPath = code;
-
-
- using (FileStream stream = File.OpenRead(physicalPath))
- {
- XWPFDocument doc = new XWPFDocument(stream);
- //遍历段落
- foreach (var para in doc.Paragraphs)
- {
- ReplaceKey(para, data);
- }
- //遍历表格
- var tables = doc.Tables;
- foreach (var table in tables)
- {
- //ReplaceTableKey(table, data, "Data");
- }
-
- foreach (var table in tables)
- {
- foreach (var row in table.Rows)
- {
- foreach (var cell in row.GetTableCells())
- {
- foreach (var para in cell.Paragraphs)
- {
- ReplaceKey(para, data);
- }
- }
- }
- }
-
- FileStream out1 = new FileStream("table.docx", FileMode.Create);
- doc.Write(out1);
- out1.Close();
- return new FileStreamResult(stream, "application/msword")
- {
- FileDownloadName = $"replaced_{DateTime.Now.ToString("yyyyMMddHHmmss")}.docx"
- };
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
-
- private static void ReplaceKey(XWPFParagraph para, object model)
- {
- string text = para.ParagraphText;
-
- Type t = model.GetType();
- PropertyInfo[] pi = t.GetProperties();
- foreach (PropertyInfo p in pi)
- {
- //$$与模板中$$对应,也可以改成其它符号,比如{$name},务必做到唯一
- if (text.Contains("$" + p.Name + "$"))
- {
- text = text.Replace("$" + p.Name + "$", p.GetValue(model)?.ToString());
- }
- }
-
- //var runs = para.Runs;
- //string styleid = para.Style;
- //for (int i = 0; i < runs.Count; i++)
- //{
- // var run = runs[i];
- // text = run.ToString();
- // Type t = model.GetType();
- // PropertyInfo[] pi = t.GetProperties();
- // foreach (PropertyInfo p in pi)
- // {
- // //$$与模板中$$对应,也可以改成其它符号,比如{$name},务必做到唯一
- // if (text.Contains("$" + p.Name + "$"))
- // {
- // text = text.Replace("$" + p.Name + "$", p.GetValue(model)?.ToString());
- // }
- // }
- // runs[i].SetText(text, 0);
- //}
- }
-
-
-
-
- ///
- /// 替换表格Key
- ///
- ///
- ///
- ///
-
- private static void ReplaceTableKey(XWPFTable table, IList list, String field)
- {
- List paras = new List();
- // 获取最后一行数据,最后一行设置值
- Int32 iLastRowIndex = 0;
- for (int iIndex = 0; iIndex < table.Rows.Count; iIndex++)
- {
- if (iIndex == table.Rows.Count - 1)
- {
- iLastRowIndex = iIndex;
- foreach (var cell in table.Rows[iIndex].GetTableCells())
- {
- foreach (var para in cell.Paragraphs)
- {
- paras.Add(para);
- }
- }
- }
- }
- // 删除最后一行
- table.RemoveRow(iLastRowIndex);
-
- for (int iIndex = 0; iIndex < list.Count; iIndex++)
- {
- object data = list[iIndex];
- Type t = data.GetType();
- PropertyInfo[] pi = t.GetProperties();
- // 表增加行
- XWPFTableRow m_row = table.CreateRow();
- CT_Row m_NewRow = new CT_Row();
- String text = String.Empty;
- Int32 jIndex = 0;
- paras.ForEach(para =>
- {
- text = para.ParagraphText;
- foreach (PropertyInfo p in pi)
- {
- if (text.Contains("$" + field + "." + p.Name + "$"))
- {
- m_row.GetCell(jIndex).SetText(p.GetValue(data, null).ToString());
- }
- }
- jIndex++;
- });
- m_row = new XWPFTableRow(m_NewRow, table);
- table.AddRow(m_row);
-
- }
- }
-
-
-
-}
\ No newline at end of file
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
index 656726dc..3b91fcdb 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
@@ -6,6 +6,7 @@
enable
enable
True
+ AnyCPU;x64
@@ -14,10 +15,30 @@
1701;1702;1591
+
+ ..\bin\
+ .\IRaCIS.Core.Application.xml
+ 1701;1702;1591
+
+
+
+ ..\bin\
+ .\IRaCIS.Core.Application.xml
+ 1701;1702;1591
+
+
1701;1702;1591;1587
+
+ 1701;1702;1591;1587
+
+
+
+ 1701;1702;1591;1587
+
+
@@ -104,7 +125,6 @@
-
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index f30170f5..7bc079ce 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -85,14 +85,6 @@