From e02fa28cd0ffcffa9a2005e250e6a38c1a626aee Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Wed, 5 Mar 2025 13:12:48 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9D=9EDicom=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/ImageAndDoc/NoneDicomStudyService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs index f82a373c9..7cff7eb9d 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/NoneDicomStudyService.cs @@ -54,7 +54,7 @@ namespace IRaCIS.Core.Application.Contracts } - var list = await noneDicomStudyQueryable.ToListAsync(); + var list = await noneDicomStudyQueryable.OrderBy(x => x.ImageDate).ThenBy(x => x.CreateTime).ToListAsync(); var config = await _subjectVisitRepository.Where(t => t.Id == subjectVisitId).Select(t => new { t.Trial.ImageFormatList, t.Trial.StudyNameList ,t.Trial.IsShowStudyName}).FirstOrDefaultAsync(); return ResponseOutput.Ok(list, config) ; From c036aab9c4b615a0c46be37cdc894317452eddf3 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 24 Mar 2025 17:12:04 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9refer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LegacyController/TrialGlobalLimitActionFilter.cs | 4 ++-- .../MinimalAPI/TrialGlobalLimitEndpointFilter.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) 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"); From 5f0643d4d47dc9e86829b059f6ee7475b14a2465 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 26 Mar 2025 14:22:26 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9swagger=20=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Progranm.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.API/Progranm.cs b/IRaCIS.Core.API/Progranm.cs index c4a6b4528..c90e0a5f1 100644 --- a/IRaCIS.Core.API/Progranm.cs +++ b/IRaCIS.Core.API/Progranm.cs @@ -39,7 +39,7 @@ var enviromentName = config["ASPNETCORE_ENVIRONMENT"]; var openSwaggerStr = config["ASPNETCORE_OpenSwagger"]; -var isOpenSwagger= openSwaggerStr == null&& openSwaggerStr?.ToLower()=="true"; +var isOpenSwagger= openSwaggerStr == null|| openSwaggerStr?.ToLower()=="true"; if (string.IsNullOrWhiteSpace(enviromentName)) From 24bfb4920cd074c3439f9e201e45bfba7cdfecf4 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 3 Apr 2025 11:29:13 +0800 Subject: [PATCH 4/4] =?UTF-8?q?IQC=E5=9B=9E=E9=80=80=E5=88=B0CRC=20?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/appsettings.Event_IRC.json | 4 +- .../IRaCIS.Core.Application.xml | 10 +++ IRaCIS.Core.Application/TestService.cs | 82 +++++++++++++++++++ 3 files changed, 94 insertions(+), 2 deletions(-) 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/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 30bf040a5..7df328020 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -13523,6 +13523,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) {