diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index f0383b59c..750ddb141 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1137,6 +1137,13 @@
获取项目下医生入组状态列表[Confirmation]
+
+
+ 获取项目下医生列表
+
+
+
+
添加/更新 医生基本信息 BasicInfo
diff --git a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs
index 938115682..7e3f43e74 100644
--- a/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs
+++ b/IRaCIS.Core.Application/Service/Doctor/DTO/DoctorModel.cs
@@ -198,6 +198,16 @@ namespace IRaCIS.Application.Contracts
}
+ public class TrialDoctorInfo : ConfirmationReviewerDTO
+ {
+
+
+
+ public List SubspecialityList => DictionaryList.Where(t => t.ParentCode == StaticData.Subspeciality).OrderBy(t => t.ShowOrder).Select(t => t.Value).ToList();
+
+ public List SubspecialityCNList => DictionaryList.Where(t => t.ParentCode == StaticData.Subspeciality).OrderBy(t => t.ShowOrder).Select(t => t.ValueCN).ToList();
+ }
+
public class ConfirmationReviewerDTO : DoctorOptDTO
{
public int DoctorTrialState { get; set; }
diff --git a/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs b/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs
index 1f76ff680..e19aa593c 100644
--- a/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs
+++ b/IRaCIS.Core.Application/Service/Doctor/DoctorListService.cs
@@ -271,6 +271,45 @@ namespace IRaCIS.Core.Application.Service
+ ///
+ /// 获取项目下医生列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ public async Task> GetTrialDoctorList(
+ ReviewerConfirmationQueryDTO inQuery)
+ {
+
+
+ var doctorQuery = _enrollRepository.Where(x => x.TrialId == inQuery.TrialId && x.EnrollStatus == EnrollStatus.ConfirmIntoGroup)
+ .ProjectTo(_mapper.ConfigurationProvider);
+
+ var doctorPageList = await doctorQuery.ToPagedListAsync(inQuery);
+
+ var enrollStateList = await _enrollDetailRepository.Where(x => x.TrialId == inQuery.TrialId && x.EnrollStatus > EnrollStatus.InviteIntoGroup)
+ .ProjectTo(_mapper.ConfigurationProvider).ToListAsync();
+
+
+
+ doctorPageList.CurrentPageData.ToList().ForEach(u =>
+ {
+ u.DoctorTrialState = (int)EnrollStatus.InviteIntoGroup;
+ var opt = enrollStateList.FirstOrDefault(t => t.DoctorId == u.Id);
+ if (opt != null)
+ {
+ u.DoctorTrialState = opt.IntoGroupState;
+ u.OptTime = opt.OptTime;
+ u.OptUserName = opt.OptUserName;
+ }
+ });
+
+ return doctorPageList;
+
+ }
+
+
+
#endregion
diff --git a/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs b/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs
index 557a00058..a86f3f864 100644
--- a/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs
+++ b/IRaCIS.Core.Application/Service/Doctor/_MapConfig.cs
@@ -182,6 +182,17 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.OptTime, u => u.MapFrom(s => s.CreateTime))
.ForMember(d => d.OptUserName, u => u.MapFrom(s => s.CreateUserRole.IdentityUser.UserName));
+
+ CreateMap().IncludeMembers(t => t.Doctor, t => t.Doctor.Hospital)
+ .ForMember(o => o.DictionaryList, t => t.MapFrom(u => u.Doctor.DoctorDicRelationList.Where(t => t.KeyName == StaticData.ReadingType || t.KeyName == StaticData.Subspeciality).Select(t => t.Dictionary).OrderBy(t => t.ShowOrder)))
+ .ForMember(d => d.Speciality, u => u.MapFrom(s => s.Doctor.Speciality.Value))
+ .ForMember(d => d.SpecialityCN, u => u.MapFrom(s => s.Doctor.Speciality.ValueCN))
+ .ForMember(d => d.Id, u => u.MapFrom(s => s.Doctor.Id))
+ .ForMember(d => d.Code, u => u.MapFrom(s => s.DoctorUser.UserName));
+
+ CreateMap();
+ CreateMap();
+
CreateMap().IncludeMembers(t => t.Doctor, t => t.Doctor.Hospital)
.ForMember(o => o.DictionaryList, t => t.MapFrom(u => u.Doctor.DoctorDicRelationList.Where(t => t.KeyName == StaticData.ReadingType || t.KeyName == StaticData.Subspeciality).Select(t => t.Dictionary).OrderBy(t => t.ShowOrder)))
.ForMember(d => d.Speciality, u => u.MapFrom(s => s.Doctor.Speciality.Value))