From 369a0803f987e2b8521d75f6de68b16abd86ae4f Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 9 Feb 2026 20:58:45 -0500 Subject: [PATCH 1/8] =?UTF-8?q?MFA=20=E8=BF=94=E5=9B=9E=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E9=82=AE=E7=AE=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs | 4 ++++ IRaCIS.Core.Application/Service/Management/UserService.cs | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs b/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs index 42bf4fcd7..3bbbcfcdd 100644 --- a/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs +++ b/IRaCIS.Core.Application/Service/Management/DTO/UserModel.cs @@ -94,6 +94,10 @@ namespace IRaCIS.Application.Contracts public string UserCode { get; set; } public string EMail { get; set; } + public string HiddenEmail { get; set; } + + + public int Status { get; set; } public bool IsTestUser { get; set; } public bool IsZhiZhun { get; set; } diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index b866781ec..788cb9392 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -1207,7 +1207,7 @@ namespace IRaCIS.Core.Application.Service var hiddenEmail = IRCEmailPasswordHelper.MaskEmail(email); - userLoginReturnModel.BasicInfo.EMail = hiddenEmail; + userLoginReturnModel.BasicInfo.HiddenEmail = hiddenEmail; //修改密码 || 90天修改密码再mfa 之前 if (userLoginReturnModel.BasicInfo.IsFirstAdd || userLoginReturnModel.BasicInfo.NeedChangePassWord) From 0ef7ef675cc3f8fecee44c09620df9aaa2ec12c4 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Mon, 9 Feb 2026 21:17:47 -0500 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=80=E5=87=BA?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=B8=BAnull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Management/UserService.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 788cb9392..fa46dfa78 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -296,7 +296,7 @@ namespace IRaCIS.Core.Application.Service var pwd = IRCEmailPasswordHelper.GenerateRandomPassword(10); - await _mailVerificationService.AdminResetPwdSendEmailAsync(identityUserId, pwd,inCommand.BaseUrl); + await _mailVerificationService.AdminResetPwdSendEmailAsync(identityUserId, pwd, inCommand.BaseUrl); await _identityUserRepository.UpdatePartialFromQueryAsync(t => t.Id == identityUserId, u => new IdentityUser() { @@ -936,11 +936,11 @@ namespace IRaCIS.Core.Application.Service [AllowAnonymous] [HttpGet] - public async Task LoginOut(Guid identityUserId, Guid userRoleId) + public async Task LoginOut(Guid identityUserId, Guid? userRoleId) { await _fusionCache.RemoveAsync(CacheKeys.UserToken(identityUserId)); - if (_identityUserRepository.Any(t => t.Id == identityUserId)) + if (_identityUserRepository.Any(t => t.Id == identityUserId) && userRoleId != null) { var userName = await _userRoleRepository.Where(t => t.Id == userRoleId).Select(t => t.IdentityUser.UserName).FirstOrDefaultAsync(); @@ -1223,6 +1223,10 @@ namespace IRaCIS.Core.Application.Service } } + else + { + userLoginReturnModel.BasicInfo.HiddenEmail = userLoginReturnModel.BasicInfo.EMail; + } await _fusionCache.SetAsync(CacheKeys.UserToken(identityUserId), userLoginReturnModel.JWTStr, TimeSpan.FromDays(7)); From 0e7bd5f5dd2ff45d10ea29d51ddc389233b4ae0f Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Tue, 10 Feb 2026 03:53:07 -0500 Subject: [PATCH 3/8] =?UTF-8?q?=E8=A7=A3=E6=9E=90UserId=20=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E5=B1=82=E5=88=A4=E6=96=AD=EF=BC=8C=E4=B8=8D=E7=9F=A5?= =?UTF-8?q?=E9=81=93=E5=89=8D=E7=AB=AF=E5=85=B6=E4=BB=96=E5=95=A5=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E8=AF=AF=E8=B0=83=E7=94=A8=E8=AF=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Controllers/ExtraController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.API/Controllers/ExtraController.cs b/IRaCIS.Core.API/Controllers/ExtraController.cs index 5859710db..66ef3bc6d 100644 --- a/IRaCIS.Core.API/Controllers/ExtraController.cs +++ b/IRaCIS.Core.API/Controllers/ExtraController.cs @@ -279,7 +279,7 @@ namespace IRaCIS.Api.Controllers var isExpire = _tokenService.IsTokenExpired(token); - if (!await _useRepository.AnyAsync(t => t.Id == Guid.Parse(userId) && t.EmailToken == token && t.IsFirstAdd) || isExpire) + if ( Guid.TryParse(userId,out _) == false || isExpire || !await _useRepository.AnyAsync(t => t.Id == Guid.Parse(userId) && t.EmailToken == token && t.IsFirstAdd) ) { decodeUrl = errorUrl + $"?lang={lang}&ErrorMessage={System.Web.HttpUtility.UrlEncode(I18n.T("UserRedirect_InitializationLinkExpire"))} "; } From 733de4c9421c216c29065932f5a8c1aaa84d9f97 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 11 Feb 2026 01:24:30 -0500 Subject: [PATCH 4/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=9B=91=E5=90=AC=E5=9C=B0=E5=9D=80=EF=BC=8C?= =?UTF-8?q?=E5=86=85=E7=BD=91=E5=85=B6=E4=BB=96=E4=BA=BA=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/Properties/launchSettings.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/IRaCIS.Core.API/Properties/launchSettings.json b/IRaCIS.Core.API/Properties/launchSettings.json index 80db71188..d3e1c91fe 100644 --- a/IRaCIS.Core.API/Properties/launchSettings.json +++ b/IRaCIS.Core.API/Properties/launchSettings.json @@ -4,7 +4,7 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "http://localhost:3305", + "applicationUrl": "http://0.0.0.0:3305", "sslPort": 0 } }, @@ -23,7 +23,7 @@ "ASPNETCORE_ENVIRONMENT": "Test_IRC", "ASPNETCORE_OpenSwagger": "true" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" }, "IRaCIS.Test_IRC_PGSQL": { "commandName": "Project", @@ -31,7 +31,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Test_IRC_PGSQL" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" }, "IRaCIS.Event_IRC": { "commandName": "Project", @@ -39,7 +39,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Event_IRC" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" }, "Docker": { "commandName": "Docker", @@ -53,7 +53,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Uat_IRC" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" }, "IRaCIS.Prod_IRC": { "commandName": "Project", @@ -61,7 +61,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Prod_IRC" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" }, "IRaCIS.US_Uat_IRC": { "commandName": "Project", @@ -69,7 +69,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "US_Uat_IRC" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" }, "IRaCIS.US_Prod_IRC": { "commandName": "Project", @@ -77,7 +77,7 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "US_Prod_IRC" }, - "applicationUrl": "http://localhost:6100" + "applicationUrl": "http://0.0.0.0:6100" } } From 83d123a31e7790bda4f51ee7b34bfaaa6743b70f Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 11 Feb 2026 04:33:31 -0500 Subject: [PATCH 5/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8F=B0=E7=BB=9F=E8=AE=A1=E6=96=87=E6=A1=A3=E7=AD=BE=E7=BD=B2?= =?UTF-8?q?=E6=95=B0=E9=87=8F=EF=BC=8C=E5=8A=A0=E4=BA=86=E5=8F=91=E5=B8=83?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=EF=BC=8C=E8=BF=99=E9=87=8C=E6=BC=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/TrialSiteUser/PersonalWorkstation.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs index 5f4d4ef47..114460c00 100644 --- a/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs +++ b/IRaCIS.Core.Application/Service/TrialSiteUser/PersonalWorkstation.cs @@ -1151,7 +1151,7 @@ namespace IRaCIS.Core.Application .Where(c => c.TrialDocumentList.Where(t => t.IsDeleted == false && t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId) && !t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null)).Count() > 0).CountAsync(); - var needSignSysDocCont = await _systemDocumentRepository.AsQueryable(true) + var needSignSysDocCont = await _systemDocumentRepository.Where(t => t.IsPublish) .Where(t => t.IsDeleted == false && !t.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null)) //外部人员 只签署 外部需要签署的 .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) @@ -1159,19 +1159,19 @@ namespace IRaCIS.Core.Application .CountAsync(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId); //电子阅片声明是否已经签署 - var isfirstSysDocNeedSign = await _systemDocumentRepository.AsQueryable(true) + var isfirstSysDocNeedSign = await _systemDocumentRepository.Where(t => t.IsPublish) .Where(t => t.IsDeleted == false && !t.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null)) //外部人员 只签署 外部需要签署的 .WhereIf(isInternal == false, t => t.DocUserSignType == DocUserSignType.InnerAndOuter) .SelectMany(t => t.NeedConfirmedUserTypeList) .AnyAsync(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId && t.SystemDocument.FileType.Code == "-1"); - var signedTrialCount = await _trialDocumentRepository.AsQueryable(true) + var signedTrialCount = await _trialDocumentRepository.Where(t => t.IsPublish) .Where(t => t.Trial.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.TrialUserRoleList.Any(t => t.UserRole.UserTypeId == _userInfo.UserTypeId))) .Where(t => t.NeedConfirmedUserTypeList.Any(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId)) .Where(t => t.TrialDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null)).CountAsync(); - var signedSysDocCont = await _systemDocumentRepository.AsQueryable(true) + var signedSysDocCont = await _systemDocumentRepository.Where(t=>t.IsPublish) .Where(t => t.SystemDocConfirmedUserList.Any(t => t.ConfirmUserId == _userInfo.IdentityUserId && t.ConfirmTime != null)) .SelectMany(t => t.NeedConfirmedUserTypeList) .CountAsync(t => t.NeedConfirmUserTypeId == _userInfo.UserTypeId); From 93558164de562e442b2144f3ed49807834e7f87f Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 11 Feb 2026 04:57:17 -0500 Subject: [PATCH 6/8] =?UTF-8?q?sql=20=E8=B6=85=E6=97=B6=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E4=B8=BA60s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs index e79f50804..be294b656 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs @@ -45,7 +45,7 @@ namespace IRaCIS.Core.API } else { - options.UseSqlServer(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure()); + options.UseSqlServer(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure().CommandTimeout(60)); } From 7879504b714ed467d3b44163bac3df75ac69d297 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 11 Feb 2026 20:22:02 -0500 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=94=9F=E6=88=90DIR=20?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=88=A4=E6=96=AD=20=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8TransferSytaxUID=E4=B8=BA=E7=A9=BA=E7=9A=84?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs | 2 +- .../IRaCIS.Core.Application.xml | 2 +- .../ImageAndDoc/DownloadAndUploadService.cs | 19 +++++++++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs index be294b656..8dde1dfb0 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/EFSetup.cs @@ -45,7 +45,7 @@ namespace IRaCIS.Core.API } else { - options.UseSqlServer(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure().CommandTimeout(60)); + options.UseSqlServer(configuration.GetSection("ConnectionStrings:RemoteNew").Value, contextOptionsBuilder => contextOptionsBuilder.EnableRetryOnFailure()/*.CommandTimeout(60)*/); } diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index f809f090f..7101b398a 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2814,7 +2814,7 @@ - + 批量勾选访视 进行下载 diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs index d729a1ffa..d849a5c5a 100644 --- a/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs +++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DownloadAndUploadService.cs @@ -53,6 +53,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc IDistributedLockProvider _distributedLockProvider, IRepository _trialImageDownloadRepository, IRepository _subjectRepository, + IRepository _instanceRepository, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer, IFusionCache _fusionCache) : BaseService, IDownloadAndUploadService { @@ -256,7 +257,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc OrginalStudyList = u.SourceSubjectVisit.StudyList .Where(t => u.TrialReadingCriterion.IsImageFilter ? ("|" + u.TrialReadingCriterion.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) - .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" || t.ModalityForEdit == "OCT" : true) + .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" || t.ModalityForEdit == "OCT" : true) .Select(t => new StudyBasicInfo() { Id = t.Id, @@ -1141,7 +1142,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var info = await _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).Select(t => new { t.Trial.TrialCode }).FirstOrDefaultAsync(); //有传输语法值的导出 才生成DIR - if (_subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList)).All(c => c.TransferSytaxUID != string.Empty)) + //if (_subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList)).All(c => c.TransferSytaxUID != string.Empty)) + if (!_instanceRepository.Where(t => inQuery.SubjectVisitId == t.SubjectVisitId).Any(c => c.TransferSytaxUID == string.Empty)) { var list = _subjectVisitRepository.Where(t => t.Id == inQuery.SubjectVisitId).SelectMany(t => t.StudyList) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) @@ -1437,7 +1439,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc foreach (var item in list) { - var dicomList = item.DicomStudyList.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" || t.ModalityForEdit == "OCT" : true).ToList(); + var dicomList = item.DicomStudyList.Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" || t.ModalityForEdit == "OCT" : true).ToList(); //dicomList.AddRange(preDicomStudyList.Where(t => t.SubjectVisitId == item.SourceSubjectVisitId).ToList()); @@ -1537,7 +1539,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc var dirInfolist = _subjectRepository.Where(t => t.Id == inQuery.SubjectId).SelectMany(t => t.SubjectVisitList.Where(t => subjectVisitIdList.Contains(t.Id))).SelectMany(t => t.StudyList) .Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel == null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) - .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" : true) + .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" : true) .SelectMany(t => t.InstanceList.Where(t => t.IsReading && t.DicomSerie.IsReading)) .Select(t => new StudyDIRInfo() { @@ -1666,7 +1668,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc TaskBlindName = leftVisitTask.TaskBlindName, StudyList = sv.StudyList.Where(t => isQueryDicom ? inQuery.DicomStudyIdList.Contains(t.Id) : false) .Where(t => info.IsImageFilter && inQuery.IsImageSegmentLabel == null ? ("|" + info.CriterionModalitys + "|").Contains("|" + t.ModalityForEdit + "|") : true) - .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" : true) + .Where(t => inQuery.IsImageSegmentLabel == false ? t.ModalityForEdit == "XA" || t.ModalityForEdit == "DSA" : true) .Select(u => new DownloadDicomStudyDto() { PatientId = u.PatientId, @@ -2258,8 +2260,13 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc { #region 在下载前先处理DIR文件 + //sql 超时 + //_subjectVisitRepository.Where(t => inCommand.SubjectVisitIdList.Contains(t.Id)) + // .SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true))) + // .All(c => c.TransferSytaxUID != string.Empty) //有传输语法值的导出 才生成DIR - if (_subjectVisitRepository.Where(t => inCommand.SubjectVisitIdList.Contains(t.Id)).SelectMany(t => t.StudyList.SelectMany(t => t.InstanceList.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true))).All(c => c.TransferSytaxUID != string.Empty)) + if (!_instanceRepository.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true) + .Where(t => inCommand.SubjectVisitIdList.Contains(t.SubjectVisitId)).Any(c => c.TransferSytaxUID == string.Empty)) { var dirInfolist = _subjectVisitRepository.Where(t => inCommand.SubjectVisitIdList.Contains(t.Id)).SelectMany(t => t.StudyList) .SelectMany(t => t.InstanceList.Where(t => isExportReading ? (t.IsReading && t.DicomSerie.IsReading) : true)) From 048193e4f387caf520795b1d8d131fda56722558 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Wed, 11 Feb 2026 22:08:43 -0500 Subject: [PATCH 8/8] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=AF=BC=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=95=B0=E6=8D=AE=E8=BF=87=E6=BB=A4=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/IRaCIS.Core.Application.xml | 2 +- IRaCIS.Core.Application/Service/Common/ExcelExportService.cs | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml index 7101b398a..f809f090f 100644 --- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml +++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml @@ -2814,7 +2814,7 @@ - + 批量勾选访视 进行下载 diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index ae5c7a155..10eb03d31 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -471,7 +471,10 @@ namespace IRaCIS.Core.Application.Service.Common .WhereIf(!string.IsNullOrEmpty(inQuery.Code), o => o.TrialCode.Contains(inQuery.Code)) .WhereIf(!string.IsNullOrEmpty(inQuery.ResearchProgramNo), o => o.ResearchProgramNo.Contains(inQuery.ResearchProgramNo)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.ExperimentName), o => o.ExperimentName.Contains(inQuery.ExperimentName)) - .WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.Admin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.OP, t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.IsDeleted == false) && t.IsDeleted == false) + .WhereIf(_userInfo.UserTypeEnumInt != (int)UserTypeEnum.SuperAdmin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.Admin && _userInfo.UserTypeEnumInt != (int)UserTypeEnum.OP, + t => t.TrialIdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.IsDeleted == false + && t.TrialUserRoleList.Any(t => t.UserId == _userInfo.UserRoleId && t.IsDeleted == false)) + && t.IsDeleted == false) .WhereIf(inQuery.CriterionType != null, o => o.TrialReadingCriterionList.Any(t => t.CriterionType == inQuery.CriterionType && t.IsSigned && t.IsConfirm)) .WhereIf(!string.IsNullOrEmpty(inQuery.PM_EMail), o => o.TrialUserRoleList.Any(t => t.UserRole.IdentityUser.EMail.Contains(inQuery.PM_EMail) && (t.UserRole.UserTypeEnum == UserTypeEnum.ProjectManager || t.UserRole.UserTypeEnum == UserTypeEnum.APM))) .Select(t => new TrialToBeDoneDto()