diff --git a/IRaCIS.Core.API/_ServiceExtensions/SwaggerSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/SwaggerSetup.cs
index e2878576b..2552950d0 100644
--- a/IRaCIS.Core.API/_ServiceExtensions/SwaggerSetup.cs
+++ b/IRaCIS.Core.API/_ServiceExtensions/SwaggerSetup.cs
@@ -16,8 +16,8 @@ namespace IRaCIS.Core.API;
public enum SwaggerVersion
{
- [Description("测试")]
- Test = -1,
+ [Description("HIR修改")]
+ HIR = -1,
[Description("医生模块")]
Reviewer = 1,
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 87569ee7c..72bead5d5 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -13564,6 +13564,26 @@
+
+
+ GA用户列表
+
+
+
+
+
+ 不分页课题组列表
+
+
+
+
+
+
+ 分页课题组列表
+
+
+
+
添加或更新受试者信息[New]
diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs
index 00e8d1f84..b65c6ec47 100644
--- a/IRaCIS.Core.Application/Service/Management/UserService.cs
+++ b/IRaCIS.Core.Application/Service/Management/UserService.cs
@@ -23,7 +23,7 @@ using LoginReturnDTO = IRaCIS.Application.Contracts.LoginReturnDTO;
namespace IRaCIS.Core.Application.Service
{
- [ApiExplorerSettings(GroupName = "Management")]
+ [ApiExplorerSettings(GroupName = "HIR")]
public class UserService(IRepository _userRoleRepository,
IMailVerificationService _mailVerificationService,
IRepository _verificationCodeRepository,
diff --git a/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs b/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs
index 17cc81945..0518e0ae4 100644
--- a/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs
+++ b/IRaCIS.Core.Application/Service/Visit/DTO/HospitalGroupViewModel.cs
@@ -16,6 +16,8 @@ public class HospitalGroupView : HospitalGroupAddOrEdit
public DateTime UpdateTime { get; set; }
+ public List GAUserList { get; set; }
+
}
@@ -32,6 +34,8 @@ public class HospitalGroupAddOrEdit
public string ContactPhone { get; set; }
public string Name { get; set; }
+
+ public List IdentityUserIdList { get; set; }
}
public class HospitalGroupQuery : PageInput
@@ -50,3 +54,18 @@ public class HospitalGroupQuery : PageInput
+public class HospitalGroupAdminUserInfo
+{
+ public Guid Id { get; set; }
+
+ public string UserName { get; set; }
+
+ public string FullName { get; set; }
+
+ public string Email { get; set; }
+
+}
+
+
+
+
diff --git a/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs b/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs
index 967b17e4d..0753d5dad 100644
--- a/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/HospitalGroupService.cs
@@ -14,14 +14,29 @@ using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Application.Contracts;
namespace IRaCIS.Core.Application.Service;
-[ApiExplorerSettings(GroupName = "Test")]
+[ApiExplorerSettings(GroupName = "HIR")]
public class HospitalGroupService(IRepository _hospitalGroupRepository,
+ IRepository _identityUserRepository, IRepository _hospitalGroupIdentityUserRepository,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IHospitalGroupService
{
+ ///
+ /// GA用户列表
+ ///
+ ///
+
+ public async Task> GetGAUserList()
+ {
+ var list = await _identityUserRepository.Where(t => t.UserRoleList.Any(t => t.UserTypeEnum == UserTypeEnum.GA)).ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+ return list;
+ }
-
-
+ ///
+ /// 不分页课题组列表
+ ///
+ ///
+ ///
[HttpPost]
public async Task> GetHospitalGroupList(HospitalGroupQuery inQuery)
{
@@ -32,14 +47,18 @@ public class HospitalGroupService(IRepository _hospitalGroupRepos
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.Affiliation), t => t.Affiliation.Contains(inQuery.Affiliation))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactPhone), t => t.ContactPhone.Contains(inQuery.ContactPhone))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactName), t => t.ContactName.Contains(inQuery.ContactName))
- .ProjectTo(_mapper.ConfigurationProvider);
+ .ProjectTo(_mapper.ConfigurationProvider);
var pageList = await hospitalGroupQueryable.SortToListAsync(inQuery);
return pageList;
}
-
+ ///
+ /// 分页课题组列表
+ ///
+ ///
+ ///
[HttpPost]
public async Task> GetHospitalGroupPageList(HospitalGroupQuery inQuery)
{
@@ -50,7 +69,7 @@ public class HospitalGroupService(IRepository _hospitalGroupRepos
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.Affiliation), t => t.Affiliation.Contains(inQuery.Affiliation))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactPhone), t => t.ContactPhone.Contains(inQuery.ContactPhone))
.WhereIf(!string.IsNullOrWhiteSpace(inQuery.ContactName), t => t.ContactName.Contains(inQuery.ContactName))
- .ProjectTo(_mapper.ConfigurationProvider);
+ .ProjectTo(_mapper.ConfigurationProvider);
var pageList = await hospitalGroupQueryable.ToPagedListAsync(inQuery);
@@ -67,10 +86,34 @@ public class HospitalGroupService(IRepository _hospitalGroupRepos
VerifyMsg = _localizer["HospitalGroup_DuplicateCode"]
};
+ if (addOrEditHospitalGroup.Id == null)
+ {
- var entity = await _hospitalGroupRepository.InsertOrUpdateAsync(addOrEditHospitalGroup, true, verifyExp1);
+ var addEntity = _mapper.Map(addOrEditHospitalGroup);
- return ResponseOutput.Ok(entity.Id.ToString());
+ addEntity.IdentityUserList = addOrEditHospitalGroup.IdentityUserIdList.Select(t => new HospitalGroupIdentityUser() { IdentityUserId = t }).ToList();
+
+ var newEntity = await _hospitalGroupRepository.AddAsync(addEntity, true, verifyExp1);
+
+ return ResponseOutput.Ok(newEntity.Id.ToString());
+ }
+ else
+ {
+ await _hospitalGroupIdentityUserRepository.BatchDeleteNoTrackingAsync(t => t.HospitalGroupId == addOrEditHospitalGroup.Id && t.IsManager);
+
+ //var find = await _hospitalGroupRepository.FirstOrDefaultAsync(t => t.Id == addOrEditHospitalGroup.Id);
+
+ //_mapper.Map(addOrEditHospitalGroup, find);
+
+ var adminUserList = addOrEditHospitalGroup.IdentityUserIdList.Select(t => new HospitalGroupIdentityUser() { IdentityUserId = t, HospitalGroupId = (Guid)addOrEditHospitalGroup.Id }).ToList();
+
+ await _hospitalGroupIdentityUserRepository.AddRangeAsync(adminUserList);
+ var entity = await _hospitalGroupRepository.UpdateFromDTOAsync(addOrEditHospitalGroup, false, false, verifyExp1);
+
+
+ }
+
+ return ResponseOutput.Ok();
}
diff --git a/IRaCIS.Core.Application/Service/Visit/PatientService.cs b/IRaCIS.Core.Application/Service/Visit/PatientService.cs
index 7225513d2..2eb3b178c 100644
--- a/IRaCIS.Core.Application/Service/Visit/PatientService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/PatientService.cs
@@ -57,7 +57,7 @@ using IRaCIS.Core.Application.Helper.OtherTool;
namespace IRaCIS.Application.Services
{
- [ApiExplorerSettings(GroupName = "Trial")]
+ [ApiExplorerSettings(GroupName = "HIR")]
public class PatientService(IRepository _studySubjectVisitRepository,
IRepository _subjectPatientRepository,
IRepository _trialRepository,
diff --git a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs
index 4f96e4055..120ec68fb 100644
--- a/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Visit/_MapConfig.cs
@@ -32,7 +32,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.UserTypeEnum, u => u.MapFrom(s => s.CreateUserRole.UserTypeEnum));
CreateMap();
-
+
CreateMap()
.ForMember(d => d.CreateUser, u => u.MapFrom(g => g.CreateUserRole.LastName + " / " + g.CreateUserRole.FirstName));
@@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.CallingAEList, u => u.MapFrom(s => s.SCPStudyList.Select(t => t.CallingAE).Distinct()))
.ForMember(d => d.PatientId, u => u.MapFrom(s => s.Id));
- CreateMap().IncludeMembers(t=>t.SCPStudy)
+ CreateMap().IncludeMembers(t => t.SCPStudy)
.ForMember(d => d.VisitName, u => u.MapFrom(s => s.SubjectVisit.VisitName));
CreateMap()
@@ -136,13 +136,13 @@ namespace IRaCIS.Core.Application.Service
CreateMap()
.ForMember(d => d.TrialId, u => u.MapFrom(s => s.Id))
- .ForMember(d => d.UnSubmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t=>t.SubmitState==SubmitStateEnum.ToSubmit)))
- .ForMember(d => d.UnReadCount, u => u.MapFrom(s => s.VisitTaskList.Count(t=>t.TaskState==TaskState.Effect && t.SignTime==null)))
+ .ForMember(d => d.UnSubmitCount, u => u.MapFrom(s => s.SubjectVisitList.Count(t => t.SubmitState == SubmitStateEnum.ToSubmit)))
+ .ForMember(d => d.UnReadCount, u => u.MapFrom(s => s.VisitTaskList.Count(t => t.TaskState == TaskState.Effect && t.SignTime == null)))
;
CreateMap()
.ForMember(d => d.DictionaryList, u => u.MapFrom(s => s.TrialDicList.Select(t => t.Dictionary).OrderBy(t => t.ShowOrder)));
-
+
CreateMap()
.ForMember(d => d.SCPStudyId, u => u.MapFrom(s => s.Id));
@@ -161,7 +161,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.ExperimentName, u => u.MapFrom(s => s.Subject.Trial.ExperimentName));
CreateMap();
-
+
CreateMap();
@@ -202,8 +202,20 @@ namespace IRaCIS.Core.Application.Service
- CreateMap();
+ CreateMap()
+ .ForMember(d => d.GAUserList, u => u.MapFrom(s => s.IdentityUserList.Where(t => t.IsManager).Select(t => t.IdentityUser)))
+ .ForMember(d => d.IdentityUserIdList, u => u.MapFrom(s => s.IdentityUserList.Where(t => t.IsManager).Select(t => t.IdentityUser.Id)));
+
+
CreateMap().ReverseMap();
+
+
+ CreateMap();
+
+
+
+
+
}
}
diff --git a/IRaCIS.Core.Domain/Management/HospitalGroup.cs b/IRaCIS.Core.Domain/Management/HospitalGroup.cs
index e72625fcc..8dff639a0 100644
--- a/IRaCIS.Core.Domain/Management/HospitalGroup.cs
+++ b/IRaCIS.Core.Domain/Management/HospitalGroup.cs
@@ -12,6 +12,13 @@ namespace IRaCIS.Core.Domain.Models
[Comment("课题组")]
public class HospitalGroup : BaseFullAuditEntity
{
+ #region 导航属性
+ [JsonIgnore]
+ public List IdentityUserList { get; set; }
+
+ #endregion
+
+
public string Name { get; set; }
public string Code { get; set; }
@@ -23,11 +30,23 @@ namespace IRaCIS.Core.Domain.Models
public string ContactPhone { get; set; }
+
+
+
}
[Comment("用户课题组中间关系表")]
public class HospitalGroupIdentityUser : BaseFullAuditEntity
{
+ #region 导航属性
+ [JsonIgnore]
+ public HospitalGroup HospitalGroup { get; set; }
+
+ [JsonIgnore]
+ public IdentityUser IdentityUser { get; set; }
+ #endregion
+
+
public Guid HospitalGroupId { get; set; }