From ffedc3f378e4b625812dc5b5f41033309707e267 Mon Sep 17 00:00:00 2001 From: hang <872297557@qq.com> Date: Thu, 11 Sep 2025 14:29:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E6=9F=A5=E7=BB=91?= =?UTF-8?q?=E5=AE=9A+=20GA=20=E7=9C=8B=E5=88=B0=E7=9A=84=E8=AF=BE=E9=A2=98?= =?UTF-8?q?=E7=BB=84=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs | 2 ++ IRaCIS.Core.Application/Service/Visit/PatientService.cs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs b/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs index 96ec3c8b2..bca76026d 100644 --- a/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs +++ b/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs @@ -81,8 +81,10 @@ public class HospitalGroupService(IRepository _hospitalGroupRepos [HttpPost] public async Task> GetHospitalGroupPageList(HospitalGroupQuery inQuery) { + //GA 只能看到自己是管理员的课题组 var hospitalGroupQueryable = _hospitalGroupRepository + .WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.GA, t => t.IdentityUserList.Any(t => t.IdentityUserId == _userInfo.IdentityUserId && t.IsManager && t.IsDisabled == false)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Code), t => t.Code.Contains(inQuery.Code)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Name), t => t.Name.Contains(inQuery.Name)) .WhereIf(!string.IsNullOrWhiteSpace(inQuery.Affiliation), t => t.Affiliation.Contains(inQuery.Affiliation)) diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs index a39dbad3c..67e882fc5 100644 --- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs +++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs @@ -2593,7 +2593,11 @@ namespace IRaCIS.Application.Services [HttpPost] public async Task> GetPatientOtherStudyList(PatientStudyOtherQuery inQuery) { + + var trialHospitalGroupId = await _trialRepository.Where(t => t.Id == inQuery.TrialId).Select(t => t.HospitalGroupId).FirstOrDefaultAsync(); + var query = from scpStudy in _studyRepository.Where(t => inQuery.PatientIdList.Contains(t.PatientId) && !t.SCPStudySubjectVisitList.Any(t => (t.SubjectVisitId == inQuery.SujectVisitId || t.SubjectVisit.SubmitState == SubmitStateEnum.Submitted) && t.TrialId == inQuery.TrialId)) + .Where(t => t.HospitalGroupList.Any(t => t.HospitalGroupId == trialHospitalGroupId)) .WhereIf(inQuery.EarliestStudyTime != null, t => t.StudyTime >= inQuery.EarliestStudyTime) .WhereIf(inQuery.LatestStudyTime != null, t => t.StudyTime <= inQuery.LatestStudyTime) .WhereIf(!string.IsNullOrEmpty(inQuery.PatientIdStr), t => t.PatientIdStr.Contains(inQuery.PatientIdStr))