整理仓储2
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-08-23 14:54:01 +08:00
parent 7867a82e6e
commit a43ef376c4
37 changed files with 177 additions and 155 deletions
@@ -22,6 +22,7 @@ namespace IRaCIS.Core.Application.Services
IRepository<DicomSeries> _seriesRepository,
IRepository<DicomInstance> _instanceRepository,
IRepository<Dictionary> _dictionaryRepository,
IRepository<SystemAnonymization> _systemAnonymizationRepository,
IDistributedLockProvider _distributedLockProvider) : BaseService, IDicomArchiveService
{
@@ -59,7 +60,7 @@ namespace IRaCIS.Core.Application.Services
}
var anonymizeList = await _fusionCache.GetOrSetAsync(CacheKeys.SystemAnonymization, _ => CacheHelper.GetSystemAnonymizationListAsync(_repository), TimeSpan.FromDays(7));
var anonymizeList = await _fusionCache.GetOrSetAsync(CacheKeys.SystemAnonymization, _ => CacheHelper.GetSystemAnonymizationListAsync(_systemAnonymizationRepository), TimeSpan.FromDays(7));
var fixedFiledList = anonymizeList.Where(t => t.IsFixed).ToList();
var ircFiledList = anonymizeList.Where(t => t.IsFixed == false).ToList();
@@ -292,7 +292,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
using (await @lock.AcquireAsync())
{
//查询数据库获取最大的Code 没有记录则为0
var dbStudyCodeIntMax = _repository.Where<TaskStudy>(s => s.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
var dbStudyCodeIntMax = _taskStudyRepository.Where(s => s.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
//获取缓存中的值 并发的时候,需要记录,已被占用的值 这样其他线程在此占用的最大的值上递增
var cacheMaxCodeInt = await _fusionCache.GetOrDefaultAsync<int>(CacheKeys.TrialStudyMaxCode(trialId));
@@ -371,7 +371,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
var studyId = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString(), findOriginStudy.VisitTaskId.ToString());
var study = await _repository.FirstOrDefaultAsync<TaskStudy>(t => t.Id == studyId);
var study = await _taskStudyRepository.FirstOrDefaultAsync(t => t.Id == studyId);
//重传的时候也要赋值检查Id
studyMonitor.StudyId = study.Id;
@@ -390,7 +390,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
{
var seriesId = IdentifierHelper.CreateGuid(seriesItem.StudyInstanceUid, seriesItem.SeriesInstanceUid, trialId.ToString(), findOriginStudy.VisitTaskId.ToString());
TaskSeries dicomSeries = await _repository.FirstOrDefaultAsync<TaskSeries>(t => t.Id == seriesId);
TaskSeries dicomSeries = await _taskSeriesRepository.FirstOrDefaultAsync(t => t.Id == seriesId);
//判断重复
if (dicomSeries == null)
@@ -444,7 +444,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
using (await @lock2.AcquireAsync())
{
await _repository.SaveChangesAsync();
await _taskStudyRepository.SaveChangesAsync();
}
}
catch (Exception ex)
@@ -14,7 +14,6 @@ using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using System.Threading;
using Medallion.Threading;
using System.Reactive.Subjects;
using DocumentFormat.OpenXml.Drawing.Diagrams;
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
using ZiggyCreatures.Caching.Fusion;
@@ -31,7 +30,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
IRepository<Trial> _trialRepository,
IRepository<VisitTask> _visitTaskRepository,
IRepository<DicomStudy> _dicomStudyRepository,
IRepository<Subject> _subjectRepository,
IRepository<StudyMonitor> _studyMonitorRepository,
IRepository<SystemAnonymization> _systemAnonymizationRepository,
IRepository<NoneDicomStudy> _noneDicomStudyRepository,
IDistributedLockProvider _distributedLockProvider) : BaseService, IStudyService
{
@@ -460,7 +461,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
public async Task<PageOutput<UnionStudyMonitorModel>> GetDicomAndNoneDicomStudyMonitorList(StudyQuery inQuery)
{
var svExpression = QCCommon.GetStudyMonitorSubjectVisitFilter(inQuery.VisitPlanArray);
var StudyMonitorQuery = _repository.Where<StudyMonitor>(t => t.TrialId == inQuery.TrialId, ignoreQueryFilters: true)
var StudyMonitorQuery = _studyMonitorRepository.Where(t => t.TrialId == inQuery.TrialId, ignoreQueryFilters: true)
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.Subject.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
//.WhereIf(!string.IsNullOrEmpty(studyQuery.VisitPlanInfo), studyQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(studyQuery.VisitPlanInfo))
.WhereIf(inQuery.VisitPlanArray != null && inQuery.VisitPlanArray?.Length > 0, svExpression)
@@ -711,7 +712,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
var systemAnonymizationList = _repository.Where<SystemAnonymization>(t => t.IsEnable).ToList();
var systemAnonymizationList = _systemAnonymizationRepository.Where(t => t.IsEnable).ToList();
return ResponseOutput.Ok<List<VerifyStudyUploadResult>>(resultList, new
{
@@ -772,7 +773,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
// 写入dicom 固定的信息,以及组织路径的信息 以及匿名化的信息
var otherData = GetSaveToDicomInfo(verifyInfo.SubjectVisitId);
var anonymizeList = _fusionCache.GetOrSetAsync(CacheKeys.SystemAnonymization, _ => CacheHelper.GetSystemAnonymizationListAsync(_repository), TimeSpan.FromDays(7)).Result;
var anonymizeList = _fusionCache.GetOrSetAsync(CacheKeys.SystemAnonymization, _ => CacheHelper.GetSystemAnonymizationListAsync(_systemAnonymizationRepository), TimeSpan.FromDays(7)).Result;
return ResponseOutput.Ok<List<VerifyStudyUploadResult>>(result, new
{
@@ -801,7 +802,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
return result;
}
if (_repository.Where<Domain.Models.Subject>(t => t.Id == SubjectId).Select(t => t.Status).FirstOrDefault() == SubjectStatus.EndOfVisit)
if (_subjectRepository.Where(t => t.Id == SubjectId).Select(t => t.Status).FirstOrDefault() == SubjectStatus.EndOfVisit)
{
result.AllowUpload = false;
@@ -14,7 +14,7 @@ namespace IRaCIS.Core.Application.Service
/// SystemAnonymizationService
/// </summary>
[ApiExplorerSettings(GroupName = "Image")]
public class SystemAnonymizationService(IRepository<SystemAnonymization> systemAnonymizationRepository) : BaseService, ISystemAnonymizationService
public class SystemAnonymizationService(IRepository<SystemAnonymization> _systemAnonymizationRepository) : BaseService, ISystemAnonymizationService
{
@@ -22,7 +22,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<PageOutput<SystemAnonymizationView>> GetSystemAnonymizationList(SystemAnonymizationQuery inQuery)
{
var systemAnonymizationQueryable = systemAnonymizationRepository
var systemAnonymizationQueryable = _systemAnonymizationRepository
.WhereIf(!string.IsNullOrEmpty(inQuery.Group), t => t.Group.Contains(inQuery.Group))
.WhereIf(!string.IsNullOrEmpty(inQuery.Element), t => t.Element.Contains(inQuery.Element))
.WhereIf(inQuery.IsAdd != null, t => t.IsAdd == inQuery.IsAdd)
@@ -36,7 +36,7 @@ namespace IRaCIS.Core.Application.Service
public async Task<IResponseOutput> AddOrUpdateSystemAnonymization(SystemAnonymizationAddOrEdit addOrEditSystemAnonymization)
{
var entity = await _repository.InsertOrUpdateAsync<SystemAnonymization, SystemAnonymizationAddOrEdit>(addOrEditSystemAnonymization, true);
var entity = await _systemAnonymizationRepository.InsertOrUpdateAsync(addOrEditSystemAnonymization, true);
return ResponseOutput.Ok(entity.Id.ToString());
@@ -47,7 +47,7 @@ namespace IRaCIS.Core.Application.Service
[HttpDelete("{systemAnonymizationId:guid}")]
public async Task<IResponseOutput> DeleteSystemAnonymization(Guid systemAnonymizationId)
{
var success = await systemAnonymizationRepository.BatchDeleteNoTrackingAsync(t => t.Id == systemAnonymizationId);
var success = await _systemAnonymizationRepository.BatchDeleteNoTrackingAsync(t => t.Id == systemAnonymizationId);
return ResponseOutput.Result(success);
}