diff --git a/IRaCIS.Core.API/appsettings.Event_IRC.json b/IRaCIS.Core.API/appsettings.Event_IRC.json
index a5e5925ca..67ccf7b7b 100644
--- a/IRaCIS.Core.API/appsettings.Event_IRC.json
+++ b/IRaCIS.Core.API/appsettings.Event_IRC.json
@@ -7,8 +7,8 @@
}
},
"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"
+ "RemoteNew": "Server=101.132.253.119,1435;Database=irc_Prpd_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true",
+ "Hangfire": "Server=101.132.253.119,1435;Database=irc_Hangfire_bak;User ID=sa;Password=xc@123456;TrustServerCertificate=true"
},
"ObjectStoreService": {
"ObjectStoreUse": "AliyunOSS",
diff --git a/IRaCIS.Core.Application/BusinessFilter/LegacyController/TrialGlobalLimitActionFilter.cs b/IRaCIS.Core.Application/BusinessFilter/LegacyController/TrialGlobalLimitActionFilter.cs
index e845a10c4..8d24d2591 100644
--- a/IRaCIS.Core.Application/BusinessFilter/LegacyController/TrialGlobalLimitActionFilter.cs
+++ b/IRaCIS.Core.Application/BusinessFilter/LegacyController/TrialGlobalLimitActionFilter.cs
@@ -62,9 +62,9 @@ public class TrialGlobalLimitActionFilter(IFusionCache _fusionCache, IUserInfo _
var index = context.HttpContext.Request.RouteValues.Keys.ToList().IndexOf("trialId");
trialIdStr = context.HttpContext.Request.RouteValues.Values.ToList()[index] as string;
}
- else if (context.HttpContext.Request.Headers["self-Referer"].ToString().Contains("trialId"))
+ else if (context.HttpContext.Request.Headers["Referer"].ToString().Contains("trialId"))
{
- var headerStr = context.HttpContext.Request.Headers["self-Referer"].ToString();
+ var headerStr = context.HttpContext.Request.Headers["Referer"].ToString();
var trialIdIndex = headerStr.IndexOf("trialId");
diff --git a/IRaCIS.Core.Application/BusinessFilter/MinimalAPI/TrialGlobalLimitEndpointFilter.cs b/IRaCIS.Core.Application/BusinessFilter/MinimalAPI/TrialGlobalLimitEndpointFilter.cs
index bb1974ff0..6648db25e 100644
--- a/IRaCIS.Core.Application/BusinessFilter/MinimalAPI/TrialGlobalLimitEndpointFilter.cs
+++ b/IRaCIS.Core.Application/BusinessFilter/MinimalAPI/TrialGlobalLimitEndpointFilter.cs
@@ -71,9 +71,9 @@ public class TrialGlobalLimitEndpointFilter(IFusionCache _fusionCache, IUserInfo
var index = context.HttpContext.Request.RouteValues.Keys.ToList().IndexOf("trialId");
trialIdStr = context.HttpContext.Request.RouteValues.Values.ToList()[index] as string;
}
- else if (context.HttpContext.Request.Headers["self-Referer"].ToString().Contains("trialId"))
+ else if (context.HttpContext.Request.Headers["Referer"].ToString().Contains("trialId"))
{
- var headerStr = context.HttpContext.Request.Headers["self-Referer"].ToString();
+ var headerStr = context.HttpContext.Request.Headers["Referer"].ToString();
var trialIdIndex = headerStr.IndexOf("trialId");
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index ed2820f80..87ea8de6a 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -13888,6 +13888,16 @@
+
+
+ IQC 回退到影像上传
+
+
+
+
+
+
+
非dicom 临床数据
diff --git a/IRaCIS.Core.Application/TestService.cs b/IRaCIS.Core.Application/TestService.cs
index 29327555a..2b916b3d0 100644
--- a/IRaCIS.Core.Application/TestService.cs
+++ b/IRaCIS.Core.Application/TestService.cs
@@ -7,6 +7,7 @@ using IRaCIS.Core.Application.Helper;
using IRaCIS.Core.Application.Service.BusinessFilter;
using IRaCIS.Core.Application.ViewModel;
using IRaCIS.Core.Domain;
+using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Infrastructure;
@@ -86,6 +87,87 @@ namespace IRaCIS.Core.Application.Service
await _readingConsistentClinicalDataRepository.SaveChangesAsync();
return ResponseOutput.Ok();
}
+
+
+ ///
+ /// IQC 回退到影像上传
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ [AllowAnonymous]
+ [HttpPost]
+ public async Task IQCBackToUpload(Guid[] subjectVisitIdList,
+ [FromServices] IRepository _subjectVisitRepository,
+ [FromServices] IRepository _trialQCQuestionAnswerRepository,
+ [FromServices] IRepository _readingClinicalDataReposiotry)
+ {
+
+ foreach (var subjectVisitId in subjectVisitIdList)
+ {
+ var sv = (await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException();
+
+
+ //需要重新产生任务
+ sv.IsVisitTaskGenerated = false;
+ sv.IsPMBackOrReReading = true;
+
+ sv.AuditState = AuditStateEnum.None;
+ sv.SubmitState = SubmitStateEnum.ToSubmit;
+ sv.ReadingStatus = ReadingStatusEnum.ImageNotSubmit;
+
+ //回退后,回退状态恢复
+ sv.RequestBackState = RequestBackStateEnum.NotRequest;
+ sv.IsCheckBack = false;
+ sv.CheckBackTime = null;
+ sv.CheckState = CheckStateEnum.None;
+ sv.CheckChallengeState = CheckChanllengeTypeEnum.None;
+
+ sv.SVENDTC = null;
+ sv.SVSTDTC = null;
+
+ sv.PreliminaryAuditTime = null;
+ sv.SubmitTime = null;
+ sv.ReviewAuditTime = null;
+ sv.CurrentActionUserExpireTime = null;
+
+
+ sv.IsTake = false;
+ sv.CurrentActionUserId = null;
+ sv.PreliminaryAuditUserId = null;
+ sv.ReviewAuditUserId = null;
+
+
+ if (sv.IsBaseLine)
+ {
+ await _readingClinicalDataReposiotry.UpdatePartialFromQueryAsync(t => t.ReadingId == sv.Id && (t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit), c => new ReadingClinicalData() { IsSign = false, ReadingClinicalDataState = ReadingClinicalDataStatus.HaveUploaded });
+
+ }
+ else
+ {
+ await _readingClinicalDataReposiotry.UpdatePartialFromQueryAsync(t => t.ReadingId == sv.Id && t.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit, c => new ReadingClinicalData()
+ {
+ IsSign = false,
+ ReadingClinicalDataState = ReadingClinicalDataStatus.HaveUploaded,
+ IsBlind = null,
+ IsComplete = null
+ });
+ }
+
+
+ await _trialQCQuestionAnswerRepository.BatchDeleteNoTrackingAsync(t => t.SubjectVisitId == subjectVisitId);
+ }
+
+
+
+ var success = await _subjectVisitRepository.SaveChangesAsync();
+
+ return ResponseOutput.Ok();
+
+ }
+
public async Task DeleteOSSDate(string rootFolder,
[FromServices] IOSSService _oSSService, [FromServices] IWebHostEnvironment _hostEnvironment)
{