This commit is contained in:
2023-04-10 13:57:29 +08:00
parent 4955437524
commit 80ef28f640
11 changed files with 103 additions and 155 deletions
@@ -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<Trial> _trialRepository;
private readonly IEasyCachingProvider _provider;
private readonly ILogger<CacheTrialStatusQuartZJob> _logger;
private readonly IRepository<SystemAnonymization> _systemAnonymizationRepository;
public CacheTrialStatusQuartZJob(IRepository<Trial> trialRepository, IEasyCachingProvider provider,ILogger<CacheTrialStatusQuartZJob> logger)
public CacheTrialStatusQuartZJob(IRepository<Trial> trialRepository, IEasyCachingProvider provider,ILogger<CacheTrialStatusQuartZJob> logger, IRepository<SystemAnonymization> 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));
}
}
}
@@ -123,26 +123,28 @@ namespace IRaCIS.Core.Application.Service
foreach (var subjectVisit in subjectGroup.SubjectVisitList)
{
var blindTaskName = string.Empty;
//var blindTaskName = string.Empty;
var blindTaskName = subjectVisit.VisitName;
var isNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.TrialReadingCriterionId, clinicalDataConfirmList);
var isClinicalDataSign = IsClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.TrialReadingCriterionId, clinicalDataConfirmList, subjectVisit.Id, trialId);
if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
{
blindTaskName = visitBlindConfig.BlindBaseLineName;
}
else
{
if (trialReadingCriterionConfig.IsReadingTaskViewInOrder)
{
blindTaskName = visitBlindConfig.BlindFollowUpPrefix + " " + visitNumList.IndexOf(subjectVisit.VisitNum);
}
else
{
blindTaskName = visitBlindConfig.BlindFollowUpPrefix;
}
}
//if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
//{
// blindTaskName = visitBlindConfig.BlindBaseLineName;
//}
//else
//{
// if (trialReadingCriterionConfig.IsReadingTaskViewInOrder)
// {
// blindTaskName = visitBlindConfig.BlindFollowUpPrefix + " " + visitNumList.IndexOf(subjectVisit.VisitNum);
// }
// else
// {
// blindTaskName = visitBlindConfig.BlindFollowUpPrefix;
// }
//}
//每个访视 根据项目配置生成任务 双审生成两个
@@ -540,27 +542,27 @@ namespace IRaCIS.Core.Application.Service
var assignConfigList = await _subjectUserRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionConfig.TrialReadingCriterionId && t.SubjectId == subjectVisit.SubjectId && t.OrignalSubjectUserId == null && t.IsConfirmed).Select(u => new { u.DoctorUserId, u.ArmEnum }).ToListAsync();
var blindTaskName = string.Empty;
var blindTaskName = subjectVisit.VisitName;
var isNeedClinicalDataSign = IsNeedClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.TrialReadingCriterionId, clinicalDataConfirmList);
var isClinicalDataSign = IsClinicalDataSign(ReadingCategory.Visit, subjectVisit.IsBaseLine, trialReadingCriterionConfig.TrialReadingCriterionId, clinicalDataConfirmList, subjectVisit.Id, trialId);
if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
{
blindTaskName = visitBlindConfig.BlindBaseLineName;
}
else
{
if (trialReadingCriterionConfig.IsReadingTaskViewInOrder)
{
blindTaskName = visitBlindConfig.BlindFollowUpPrefix + " " + visitNumList.IndexOf(subjectVisit.VisitNum);
}
else
{
blindTaskName = visitBlindConfig.BlindFollowUpPrefix;
}
}
//if (visitNumList.IndexOf(subjectVisit.VisitNum) == 0)
//{
// blindTaskName = visitBlindConfig.BlindBaseLineName;
//}
//else
//{
// if (trialReadingCriterionConfig.IsReadingTaskViewInOrder)
// {
// blindTaskName = visitBlindConfig.BlindFollowUpPrefix + " " + visitNumList.IndexOf(subjectVisit.VisitNum);
// }
// else
// {
// blindTaskName = visitBlindConfig.BlindFollowUpPrefix;
// }
//}
//每个访视 根据项目配置生成任务 双审生成两个
@@ -5,6 +5,7 @@
//--------------------------------------------------------------------
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infrastructure.Extention;
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
@@ -25,7 +26,7 @@ namespace IRaCIS.Core.Application.Contracts
public class UnionDocumentView : SystemDocumentAddOrEdit
{
public string FullFilePath { get; set; } = string.Empty;
public string FullFilePath { get; set; }
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }
@@ -151,7 +151,7 @@ namespace IRaCIS.Core.Application.Services
FileType = sysDoc.FileType.MappedValue,
UpdateTime = sysDoc.UpdateTime,
FullFilePath = sysDoc.Path + "?access_token=" + _userInfo.UserToken,
FullFilePath = sysDoc.Path ,
ConfirmUserId = confirm.ConfirmUserId,
ConfirmTime = confirm.ConfirmTime,
@@ -195,6 +195,9 @@ namespace IRaCIS.Application.Services
trial.IsHaveFirstGiveMedicineDate = false;
trial.TrialStatusStr = StaticData.TrialState.TrialOngoing;
trial.BlindBaseLineName = "Batch 1";
trial.BlindBaseLineName = "Batch ";
#endregion