Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

IRC_NewDev
he 2024-11-06 14:13:08 +08:00
commit e66475ab61
12 changed files with 114 additions and 15 deletions

View File

@ -52,6 +52,7 @@ SerilogExtension.AddSerilogSetup(enviromentName);
var builder = WebApplication.CreateBuilder(new WebApplicationOptions var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{ {
EnvironmentName = enviromentName EnvironmentName = enviromentName
}); });

View File

@ -63,7 +63,7 @@ namespace IRaCIS.Core.Application.Contracts
public bool? IsDistinguishCriteria { get; set; } public bool? IsDistinguishCriteria { get; set; }
public SysEmailLevel? SystemLevel { get; set; } public SysEmailLevel? SystemLevel { get; set; }
public int? BusinessModuleEnum { get; set; } public BusinessModule? BusinessModuleEnum { get; set; }
public int? EmailUrgentEnum { get; set; } public int? EmailUrgentEnum { get; set; }

View File

@ -26,6 +26,7 @@ namespace IRaCIS.Core.Application.Contracts
.WhereIf(inQuery.SystemLevel != null, t => t.SystemLevel == inQuery.SystemLevel) .WhereIf(inQuery.SystemLevel != null, t => t.SystemLevel == inQuery.SystemLevel)
.WhereIf(inQuery.IsDistinguishCriteria != null, t => t.IsDistinguishCriteria == inQuery.IsDistinguishCriteria) .WhereIf(inQuery.IsDistinguishCriteria != null, t => t.IsDistinguishCriteria == inQuery.IsDistinguishCriteria)
.WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum) .WhereIf(inQuery.CriterionTypeEnum != null, t => t.CriterionTypeEnum == inQuery.CriterionTypeEnum)
.WhereIf(inQuery.BusinessModuleEnum != null, t => t.BusinessModuleEnum == inQuery.BusinessModuleEnum)
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum) .WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
.WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired) .WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable) .WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)

View File

@ -1607,10 +1607,11 @@ namespace IRaCIS.Core.Application.Service.Common
var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync(); var criterion = await _readingQuestionCriterionTrialRepository.Where(t => t.Id == inQuery.TrialReadingCriterionId).Select(t => new { t.CriterionType, t.CriterionName, t.ArbitrationRule }).FirstNotNullAsync();
var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze)) var query = _visitTaskRepository.Where(t => t.TrialId == inQuery.TrialId && t.TaskAllocationState==TaskAllocationState.Allocated && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze))
//自身一致性分析 //一致性分析
.WhereIf(inQuery.ReadingExportType == ExportResult.DetailedTableOfIntraReaderAnalysisResults, t => t.IsSelfAnalysis == true || t.IsSelfAnalysis == null) .WhereIf(inQuery.ReadingExportType == ExportResult.DetailedTableOfIntraReaderAnalysisResults, t => t.IsSelfAnalysis == true || t.IsSelfAnalysis == null)
.WhereIf(inQuery.ReadingExportType == ExportResult.DetailedTableOfIntraReaderAnalysisResults, t => t.IsSelfAnalysis == null? t.Subject.SubjectVisitTaskList.Any(u=>u.IsSelfAnalysis==true &&u.DoctorUserId==t.DoctorUserId ):true)
.WhereIf(inQuery.ReadingExportType == ExportResult.DetailedTableOfInterReaderAnalysisResults, t => t.IsSelfAnalysis == false || t.IsSelfAnalysis == null) .WhereIf(inQuery.ReadingExportType == ExportResult.DetailedTableOfInterReaderAnalysisResults, t => t.IsSelfAnalysis == false || t.IsSelfAnalysis == null)
//访视和全局查询已签名完成的,裁判可以是未签名,未完成的 //访视和全局查询已签名完成的,裁判可以是未签名,未完成的

View File

@ -116,6 +116,8 @@ namespace IRaCIS.Core.Application.ViewModel
public UserTypeEnum? ToUserType { get; set; } public UserTypeEnum? ToUserType { get; set; }
public UserTypeEnum? CopyUserType { get; set; } public UserTypeEnum? CopyUserType { get; set; }
public BusinessModule? BusinessModuleEnum { get; set; }
} }

View File

@ -16,7 +16,7 @@ namespace IRaCIS.Core.Application.Interfaces
{ {
Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery); Task<IResponseOutput<List<TrialEmailNoticeConfigView>>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery);
Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig); Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig);

View File

@ -1243,7 +1243,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery inQuery) public async Task<PageOutput<TrialSelectEmailNoticeConfigView>> GetSysEmailNoticeConfigList(EmailNoticeConfigQuery inQuery)
{ {
var emailNoticeConfigQueryable = _emailNoticeConfigRepository var emailNoticeConfigQueryable = _emailNoticeConfigRepository
.WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys ) .WhereIf(inQuery.SystemLevel == null, t => t.SystemLevel == SysEmailLevel.not_sys)
.WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum) .WhereIf(inQuery.BusinessScenarioEnum != null, t => t.BusinessScenarioEnum == inQuery.BusinessScenarioEnum)
.WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired) .WhereIf(inQuery.IsReturnRequired != null, t => t.IsReturnRequired == inQuery.IsReturnRequired)
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable) .WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
@ -1320,11 +1320,33 @@ namespace IRaCIS.Core.Application.Service
} }
public async Task<IResponseOutput> BatchAddEnrollOrPdEmailConfig(Guid trialId)
{
var trialConfig = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == trialId)
.WhereIf(trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
.WhereIf(trialConfig.IsPDProgressView == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification)
.WhereIf(trialConfig.IsPDProgressView == true && trialConfig.IsEnrollementQualificationConfirm == true, t => t.BusinessModuleEnum == BusinessModule.PDVerification
&& t.BusinessModuleEnum == BusinessModule.EligibilityVerification)
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
var list = await trialEmailNoticeConfigQueryable.ToListAsync();
return await BatchAddSysEmailConfig(_mapper.Map<List<BatchAddTrialEmailNoticeConfig>>(list));
}
[HttpPost] [HttpPost]
public async Task<List<TrialEmailNoticeConfigView>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery) public async Task<IResponseOutput<List<TrialEmailNoticeConfigView>>> GetTrialEmailNoticeConfigList(TrialEmailNoticeConfigQuery inQuery)
{ {
//await SyncSystemEmainCofigDocListAsync(inQuery.TrialId); //await SyncSystemEmainCofigDocListAsync(inQuery.TrialId);
var trialConfig = _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => new { t.IsEnrollementQualificationConfirm, t.IsPDProgressView }).First();
var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId) var trialEmailNoticeConfigQueryable = _trialEmailNoticeConfigRepository.Where(t => t.TrialId == inQuery.TrialId)
.WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null) .WhereIf(inQuery.IsDistinguishCriteria == false, t => t.TrialReadingCriterionId == null)
.WhereIf(inQuery.IsDistinguishCriteria == true, t => t.CriterionTypeEnum != null) .WhereIf(inQuery.IsDistinguishCriteria == true, t => t.CriterionTypeEnum != null)
@ -1334,15 +1356,23 @@ namespace IRaCIS.Core.Application.Service
.WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable) .WhereIf(inQuery.IsEnable != null, t => t.IsEnable == inQuery.IsEnable)
.WhereIf(inQuery.ToUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.ToUserType && t.EmailUserType == EmailUserType.To)) .WhereIf(inQuery.ToUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.ToUserType && t.EmailUserType == EmailUserType.To))
.WhereIf(inQuery.CopyUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy)) .WhereIf(inQuery.CopyUserType != null, t => t.TrialEmailNoticeUserList.Any(t => t.UserType == inQuery.CopyUserType && t.EmailUserType == EmailUserType.Copy))
.WhereIf(inQuery.BusinessModuleEnum != null, t => t.BusinessModuleEnum == inQuery.BusinessModuleEnum)
.WhereIf(trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.WhereIf(trialConfig.IsPDProgressView == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification)
.WhereIf(trialConfig.IsPDProgressView == false && trialConfig.IsEnrollementQualificationConfirm == false, t => t.BusinessModuleEnum != BusinessModule.PDVerification
&& t.BusinessModuleEnum != BusinessModule.EligibilityVerification)
.ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider); .ProjectTo<TrialEmailNoticeConfigView>(_mapper.ConfigurationProvider);
var sortField = string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialEmailNoticeConfigView.Code) : inQuery.SortField; var sortField = string.IsNullOrWhiteSpace(inQuery.SortField) ? nameof(TrialEmailNoticeConfigView.Code) : inQuery.SortField;
var orderQuery = inQuery.Asc ? trialEmailNoticeConfigQueryable.OrderBy(sortField) : trialEmailNoticeConfigQueryable.OrderBy(sortField + " desc"); var orderQuery = inQuery.Asc ? trialEmailNoticeConfigQueryable.OrderBy(sortField) : trialEmailNoticeConfigQueryable.OrderBy(sortField + " desc");
return await orderQuery.ToListAsync(); var list = await orderQuery.ToListAsync();
return ResponseOutput.Ok(list, trialConfig);
} }
[TrialGlobalLimit( "AfterStopCannNotOpt" )] [TrialGlobalLimit("AfterStopCannNotOpt")]
public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig) public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig)
{ {
await TestEmailConfigAsync(addOrEditTrialEmailNoticeConfig); await TestEmailConfigAsync(addOrEditTrialEmailNoticeConfig);
@ -1529,7 +1559,7 @@ namespace IRaCIS.Core.Application.Service
} }
[TrialGlobalLimit( "AfterStopCannNotOpt" )] [TrialGlobalLimit("AfterStopCannNotOpt")]
[HttpDelete("{trialEmailNoticeConfigId:guid}")] [HttpDelete("{trialEmailNoticeConfigId:guid}")]
public async Task<IResponseOutput> DeleteTrialEmailNoticeConfig(Guid trialEmailNoticeConfigId) public async Task<IResponseOutput> DeleteTrialEmailNoticeConfig(Guid trialEmailNoticeConfigId)
{ {

View File

@ -53,7 +53,7 @@ namespace IRaCIS.Core.Application.Service
CreateMap<BatchAddTrialEmailNoticeConfig, TrialEmailNoticeConfig>(); CreateMap<BatchAddTrialEmailNoticeConfig, TrialEmailNoticeConfig>();
CreateMap<TrialEmailNoticeConfigView, BatchAddTrialEmailNoticeConfig > ();
CreateMap<AddOrEditTrialDocument, TrialDocument>() CreateMap<AddOrEditTrialDocument, TrialDocument>()

View File

@ -2,8 +2,10 @@
using IdentityModel; using IdentityModel;
using IdentityModel.Client; using IdentityModel.Client;
using IRaCIS.Core.Application.Service.OAuth; using IRaCIS.Core.Application.Service.OAuth;
using MassTransit;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions; using NPOI.SS.Formula.Functions;
@ -208,12 +210,16 @@ namespace IRaCIS.Core.Application.Service
Console.WriteLine(tokenResponse); Console.WriteLine(tokenResponse);
//结束回话 //结束回话
var parameters = new Parameters();
var endUrl = new RequestUrl(disco.EndSessionEndpoint).CreateEndSessionUrl(tokenResponse.IdToken, "http://localhost:6100/OAuth/TestPCKEOrgin"); parameters.Add("clientId", "aj34vqrpvz8olsbxwtcog");
var endUrl = new RequestUrl(disco.EndSessionEndpoint).CreateEndSessionUrl(tokenResponse.IdToken, "http://localhost:6100/OAuth/TestPCKEOrgin", extra: parameters);
var _endHttpClient = new HttpClient();
var dd = await _endHttpClient.GetAsync(endUrl); Results.Redirect(endUrl);
//var _endHttpClient = new HttpClient();
//var dd = await _endHttpClient.GetAsync(endUrl);
} }
else else

View File

@ -162,6 +162,12 @@ namespace IRaCIS.Core.Application.Contracts
var info=await _doctorRepository.AddAsync(doctor,true); var info=await _doctorRepository.AddAsync(doctor,true);
//await _userRepository.BatchUpdateNoTrackingAsync(x => x.EMail == inDto.EmailOrPhone, x => new User()
//{
// DoctorId = info.DoctorId,
//});
result.DoctorId = info.Id; result.DoctorId = info.Id;
result.ReviewStatus = info.ReviewStatus; result.ReviewStatus = info.ReviewStatus;
} }

View File

@ -26,7 +26,7 @@ public class EmailNoticeConfig : BaseFullDeleteAuditEntity
public int BusinessLevelEnum { get; set; } public int BusinessLevelEnum { get; set; }
[Comment("业务模块")] [Comment("业务模块")]
public int BusinessModuleEnum { get; set; } public BusinessModule BusinessModuleEnum { get; set; }
[Comment("业务场景")] [Comment("业务场景")]
public EmailBusinessScenario BusinessScenarioEnum { get; set; } public EmailBusinessScenario BusinessScenarioEnum { get; set; }
@ -83,3 +83,55 @@ public class EmailNoticeUserType : Entity
public EmailUserType EmailUserType { get; set; } public EmailUserType EmailUserType { get; set; }
} }
public enum BusinessModule
{
/// <summary>
/// 影像质控
/// </summary>
ImageQualityControl = 1,
/// <summary>
/// 影像阅片
/// </summary>
ImageReading = 2,
/// <summary>
/// 系统登录
/// </summary>
Login = 4,
/// <summary>
/// 后台邮件
/// </summary>
BackstageEmail = 5,
/// <summary>
/// 账号信息
/// </summary>
UserAccount = 6,
/// <summary>
/// 中心调研
/// </summary>
SiteSurvey = 7,
/// <summary>
/// 阅片人管理
/// </summary>
ReviewerManagement = 8,
/// <summary>
/// 问题反馈
/// </summary>
UsersSuggestions = 9,
/// <summary>
/// 入组确认
/// </summary>
EligibilityVerification = 10,
/// <summary>
/// PD确认
/// </summary>
PDVerification = 11,
/// <summary>
/// 医学反馈
/// </summary>
MedicalQC = 13,
/// <summary>
/// 入组/PD确认
/// </summary>
Eligibility_PDVerification = 12,
}

View File

@ -36,7 +36,7 @@ public class TrialEmailNoticeConfig : BaseFullDeleteAuditEntity
public int BusinessLevelEnum { get; set; } public int BusinessLevelEnum { get; set; }
public int BusinessModuleEnum { get; set; } public BusinessModule BusinessModuleEnum { get; set; }
public EmailBusinessScenario BusinessScenarioEnum { get; set; } public EmailBusinessScenario BusinessScenarioEnum { get; set; }