修改医生

Uat_Study
hang 2022-08-03 15:14:39 +08:00
parent 2c28677323
commit 99cb6fd6d8
21 changed files with 102 additions and 28 deletions

View File

@ -21,7 +21,7 @@ namespace IRaCIS.Application.Services
Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl); Task AddUserSendEmailAsync(Guid userId, string baseUrl, string routeUrl);
Task AdminResetPwdSendEmailAsync(Guid userId); Task AdminResetPwdSendEmailAsync(Guid userId,string pwdNotMd5="123456");
Task SiteSurveyUserJoinEmail(Guid trialId, Guid userId, string baseUrl, string rootUrl); Task SiteSurveyUserJoinEmail(Guid trialId, Guid userId, string baseUrl, string rootUrl);
@ -322,7 +322,7 @@ namespace IRaCIS.Application.Services
} }
//管理员重置密码发送邮件 //管理员重置密码发送邮件
public async Task AdminResetPwdSendEmailAsync(Guid userId) public async Task AdminResetPwdSendEmailAsync(Guid userId, string pwdNotMd5= "123456")
{ {
var sysUserInfo = (await _userRepository.Where(t => t.Id == userId).Include(t => t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException(); var sysUserInfo = (await _userRepository.Where(t => t.Id == userId).Include(t => t.UserTypeRole).FirstOrDefaultAsync()).IfNullThrowException();
@ -354,7 +354,7 @@ namespace IRaCIS.Application.Services
sysUserInfo.FullName, sysUserInfo.FullName,
sysUserInfo.UserName, sysUserInfo.UserName,
sysUserInfo.UserTypeRole.UserTypeShortName, sysUserInfo.UserTypeRole.UserTypeShortName,
AppSettings.DefaultPassword pwdNotMd5
); );
} }

View File

@ -626,12 +626,16 @@ namespace IRaCIS.Application.Contracts
//public Guid FromUserId { get; set; } //public Guid FromUserId { get; set; }
public Guid Id { get; set; } public Guid Id { get; set; }
public ResumeStatusEnum ResumeStatus { get; set; } public ResumeStatusEnum ResumeStatus { get; set; }
public int ReviewStatus { get; set; } public ReviewerInformationConfirmStatus ReviewStatus { get; set; }
public bool AcceptingNewTrial { get; set; } = false; public bool AcceptingNewTrial { get; set; } = false;
public bool ActivelyReading { get; set; } = false; public bool ActivelyReading { get; set; } = false;
public string AdminComment { get; set; } = String.Empty; public string AdminComment { get; set; } = String.Empty;
public string MessageContent { get; set; } = String.Empty; public string MessageContent { get; set; } = String.Empty;
public ContractorStatusEnum CooperateStatus { get; set; } public ContractorStatusEnum CooperateStatus { get; set; }
public bool IsVirtual { get; set; }
public string BlindName { get; set; } = String.Empty;
} }
public class ResumeConfirmDTO public class ResumeConfirmDTO

View File

@ -67,8 +67,9 @@ namespace IRaCIS.Application.Services
ReviewerSelectionQueryDTO selectionQuery) ReviewerSelectionQueryDTO selectionQuery)
{ {
//项目配置需要的医生过滤 2表示混合 //项目配置需要的医生过滤 2表示混合
var nation = await _repository.Where<Trial>(s => s.Id == selectionQuery.TrialId).Select(t=>t.AttendedReviewerType).FirstOrDefaultAsync().IfNullThrowException(); var trialConfig = await _repository.Where<Trial>(s => s.Id == selectionQuery.TrialId).Select(t=>new { t.AttendedReviewerType ,t.TrialType} ).FirstOrDefaultAsync().IfNullThrowException();
var nation = trialConfig.AttendedReviewerType;
// 临床项目经验 多选 // 临床项目经验 多选
var evaluationCriteriaCount = selectionQuery.EvaluationCriteriaIdList.Count(); var evaluationCriteriaCount = selectionQuery.EvaluationCriteriaIdList.Count();
@ -77,9 +78,10 @@ namespace IRaCIS.Application.Services
var guidList = selectionQuery.ReadingTypeIdList.Concat(selectionQuery.SubspecialityIdList).Concat(selectionQuery.TitleIdList); var guidList = selectionQuery.ReadingTypeIdList.Concat(selectionQuery.SubspecialityIdList).Concat(selectionQuery.TitleIdList);
var query = _doctorRepository.WhereIf(nation != 2, t => t.Nation == nation) var query = _doctorRepository.WhereIf(nation != AttendedReviewerType.USAndCN, t => t.Nation ==(int) nation)
.WhereIf(selectionQuery.DepartmentId != null, t => t.DepartmentId == selectionQuery.DepartmentId) .WhereIf(selectionQuery.DepartmentId != null, t => t.DepartmentId == selectionQuery.DepartmentId)
.WhereIf(selectionQuery.SpecialityId != null, t => t.SpecialityId == selectionQuery.SpecialityId) .WhereIf(selectionQuery.SpecialityId != null, t => t.SpecialityId == selectionQuery.SpecialityId)
.WhereIf(trialConfig.TrialType == TrialType.NoneOfficial, t => t.IsVirtual ==true)
.WhereIf(selectionQuery.HospitalId != null, t => t.HospitalId == selectionQuery.HospitalId) .WhereIf(selectionQuery.HospitalId != null, t => t.HospitalId == selectionQuery.HospitalId)
.WhereIf(selectionQuery.PositionId != null, t => t.PositionId == selectionQuery.PositionId) .WhereIf(selectionQuery.PositionId != null, t => t.PositionId == selectionQuery.PositionId)
.WhereIf(selectionQuery.RankId != null, t => t.RankId == selectionQuery.RankId) .WhereIf(selectionQuery.RankId != null, t => t.RankId == selectionQuery.RankId)

View File

@ -438,6 +438,8 @@ namespace IRaCIS.Application.Services
ReviewStatus = auditResumeParam.ReviewStatus, ReviewStatus = auditResumeParam.ReviewStatus,
AcceptingNewTrial = auditResumeParam.AcceptingNewTrial, AcceptingNewTrial = auditResumeParam.AcceptingNewTrial,
ActivelyReading = auditResumeParam.ActivelyReading, ActivelyReading = auditResumeParam.ActivelyReading,
IsVirtual=auditResumeParam.IsVirtual,
BlindName=auditResumeParam.BlindName,
AuditTime = DateTime.Now, AuditTime = DateTime.Now,
AuditUserId = userId AuditUserId = userId
}); });

View File

@ -94,7 +94,7 @@ namespace IRaCIS.Core.Application.Service
.ForMember(d => d.Approved, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup))) .ForMember(d => d.Approved, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup)))
.ForMember(d => d.Reading, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.DoctorReading))) .ForMember(d => d.Reading, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.DoctorReading)))
.ForMember(d => d.Finished, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.Finished))) .ForMember(d => d.Finished, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.Finished)))
.ForMember(d => d.Reconfirmed, u => u.MapFrom(s => s.ReviewStatus == 1)) .ForMember(d => d.Reconfirmed, u => u.MapFrom(s => s.ReviewStatus == ReviewerInformationConfirmStatus.ConfirmPass))
.ForMember(o => o.DictionaryList, t => t.MapFrom(u => u.DoctorDicRelationList.Where(t => t.KeyName == StaticData.ReadingType || t.KeyName == StaticData.Subspeciality).Select(t => t.Dictionary).OrderBy(t => t.ShowOrder))); .ForMember(o => o.DictionaryList, t => t.MapFrom(u => u.DoctorDicRelationList.Where(t => t.KeyName == StaticData.ReadingType || t.KeyName == StaticData.Subspeciality).Select(t => t.Dictionary).OrderBy(t => t.ShowOrder)));
CreateMap<Hospital, DoctorDTO>(); CreateMap<Hospital, DoctorDTO>();

View File

@ -1,4 +1,5 @@
using System; using System;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Application.Contracts namespace IRaCIS.Application.Contracts
@ -173,6 +174,6 @@ namespace IRaCIS.Application.Contracts
public DateTime BeginDate { get; set; } public DateTime BeginDate { get; set; }
public DateTime EndDate { get; set; } public DateTime EndDate { get; set; }
public int? AttendedReviewerType { get; set; } public AttendedReviewerType? AttendedReviewerType { get; set; }
} }
} }

View File

@ -21,7 +21,9 @@ namespace IRaCIS.Application.Services
[HttpPost] [HttpPost]
public async Task<PageOutput<CROCompanyDTO>> GetCroList(CROCompanyQueryDTO croCompanySearchModel) public async Task<PageOutput<CROCompanyDTO>> GetCroList(CROCompanyQueryDTO croCompanySearchModel)
{ {
var croQueryable = _croRepository.WhereIf(!string.IsNullOrEmpty(croCompanySearchModel.CROName), t => t.CROName.Contains(croCompanySearchModel.CROName)) var croQueryable = _croRepository
.WhereIf(!string.IsNullOrEmpty(croCompanySearchModel.CROName), t => t.CROName.Contains(croCompanySearchModel.CROName) || t.CRONameCN.Contains(croCompanySearchModel.CROName))
.WhereIf(!string.IsNullOrEmpty(croCompanySearchModel.CROCode), t => t.CROCode.Contains(croCompanySearchModel.CROCode) )
.ProjectTo<CROCompanyDTO>(_mapper.ConfigurationProvider); .ProjectTo<CROCompanyDTO>(_mapper.ConfigurationProvider);
return await croQueryable.ToPagedListAsync(croCompanySearchModel.PageIndex, croCompanySearchModel.PageSize, return await croQueryable.ToPagedListAsync(croCompanySearchModel.PageIndex, croCompanySearchModel.PageSize,

View File

@ -8,6 +8,9 @@ namespace IRaCIS.Application.Contracts
public Guid? Id { get; set; } public Guid? Id { get; set; }
public string CROName { get; set; } = string.Empty; public string CROName { get; set; } = string.Empty;
public string CROCode { get; set; } = string.Empty; public string CROCode { get; set; } = string.Empty;
public string CRONameCN { get; set; } = string.Empty;
} }
public class CroSelectDTO public class CroSelectDTO
@ -15,10 +18,13 @@ namespace IRaCIS.Application.Contracts
public Guid Id { get; set; } public Guid Id { get; set; }
public string CROName { get; set; } = string.Empty; public string CROName { get; set; } = string.Empty;
public string CROCode { get; set; } = string.Empty; public string CROCode { get; set; } = string.Empty;
public string CRONameCN { get; set; } = string.Empty;
} }
public class CROCompanyQueryDTO : PageInput public class CROCompanyQueryDTO : PageInput
{ {
public string CROCode { get; set; } = string.Empty;
public string CROName { get; set; } = string.Empty; public string CROName { get; set; } = string.Empty;
} }

View File

@ -13,11 +13,18 @@ namespace IRaCIS.Application.Contracts
{ {
public Guid? Id { get; set; } public Guid? Id { get; set; }
public string SponsorName { get; set; } = string.Empty; public string SponsorName { get; set; } = string.Empty;
public string SponsorNameCN { get; set; } = String.Empty;
public string SponsorCode { get; set; } = String.Empty;
} }
public class SponsorQueryDTO : PageInput public class SponsorQueryDTO : PageInput
{ {
public string SponsorName { get; set; } = string.Empty; public string SponsorName { get; set; } = string.Empty;
public string SponsorCode { get; set; } = String.Empty;
} }
public class SponsorSelectDTO public class SponsorSelectDTO

View File

@ -23,7 +23,8 @@ namespace IRaCIS.Application.Services
{ {
var sponsorQueryable = _sponsorRepository var sponsorQueryable = _sponsorRepository
.WhereIf(!string.IsNullOrWhiteSpace(sponsorSearchModel.SponsorName),t => t.SponsorName.Contains(sponsorSearchModel.SponsorName)) .WhereIf(!string.IsNullOrWhiteSpace(sponsorSearchModel.SponsorName),t => t.SponsorName.Contains(sponsorSearchModel.SponsorName)|| t.SponsorNameCN.Contains(sponsorSearchModel.SponsorName))
.WhereIf(!string.IsNullOrEmpty(sponsorSearchModel.SponsorCode), t => t.SponsorCode.Contains(sponsorSearchModel.SponsorCode))
.ProjectTo<SponsorDTO>(_mapper.ConfigurationProvider); .ProjectTo<SponsorDTO>(_mapper.ConfigurationProvider);
return await sponsorQueryable.ToPagedListAsync(sponsorSearchModel.PageIndex, return await sponsorQueryable.ToPagedListAsync(sponsorSearchModel.PageIndex,

View File

@ -248,11 +248,19 @@ namespace IRaCIS.Application.Services
public async Task<IResponseOutput> ResetPassword(Guid userId) public async Task<IResponseOutput> ResetPassword(Guid userId)
{ {
await _mailVerificationService.AdminResetPwdSendEmailAsync(userId); var pwd = "123456";
if (_hostEnvironment.EnvironmentName != "Development")
{
pwd = "Extimaging." + new Random().Next(100, 1000);
}
await _mailVerificationService.AdminResetPwdSendEmailAsync(userId, pwd);
await _userRepository.UpdatePartialNowNoQueryAsync(userId, u => new User() await _userRepository.UpdatePartialNowNoQueryAsync(userId, u => new User()
{ {
Password = MD5Helper.Md5(AppSettings.DefaultPassword), Password = MD5Helper.Md5(pwd),
IsFirstAdd = true IsFirstAdd = true
}); });

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Application.Contracts namespace IRaCIS.Application.Contracts
@ -147,7 +148,7 @@ namespace IRaCIS.Application.Contracts
//医生付费类型 CN US //医生付费类型 CN US
public int? Nation { get; set; } public int? Nation { get; set; }
public int? AttendedReviewerType { get; set; } public AttendedReviewerType? AttendedReviewerType { get; set; }
} }
public class StatisticsWorkloadQueryParam : PageInput public class StatisticsWorkloadQueryParam : PageInput

View File

@ -10,7 +10,7 @@ namespace IRaCIS.Application.Contracts
{ {
public int? PlanSiteCount { get; set; } public int? PlanSiteCount { get; set; }
public int? PlanVisitCount { get; set; } public int? PlanVisitCount { get; set; }
public int TrialType { get; set; } public TrialType TrialType { get; set; }
public Guid? Id { get; set; } public Guid? Id { get; set; }
public string TrialCode { get; set; } = string.Empty; public string TrialCode { get; set; } = string.Empty;
public string Indication { get; set; } = string.Empty; public string Indication { get; set; } = string.Empty;
@ -195,7 +195,7 @@ namespace IRaCIS.Application.Contracts
public DateTime? BeginDate { get; set; } public DateTime? BeginDate { get; set; }
public DateTime? EndDate { get; set; } public DateTime? EndDate { get; set; }
public int? Expedited { get; set; } public int? Expedited { get; set; }
public int? AttendedReviewerType { get; set; } public AttendedReviewerType? AttendedReviewerType { get; set; }
} }
public class ReviewerTrialQueryDTO : PageInput public class ReviewerTrialQueryDTO : PageInput

View File

@ -156,7 +156,7 @@ namespace IRaCIS.Application.Services
var yearStr = DateTime.Now.Year.ToString(); var yearStr = DateTime.Now.Year.ToString();
trial.Code = currentYearMaxCodeNext; trial.Code = currentYearMaxCodeNext;
trial.TrialCode = (trial.TrialType == 1 ? yearStr.Substring(yearStr.Length - 2) : "T0") + trial.TrialCode + currentYearMaxCodeNext.ToString("D3"); trial.TrialCode = (trial.TrialType == TrialType.NoneOfficial ? yearStr.Substring(yearStr.Length - 2) : "T0") + trial.TrialCode + currentYearMaxCodeNext.ToString("D3");
//多选信息 //多选信息
@ -497,7 +497,9 @@ namespace IRaCIS.Application.Services
public async Task<PageOutput<TrialDetailDTO>> GetTrialListByReviewer(ReviewerTrialQueryDTO searchModel) public async Task<PageOutput<TrialDetailDTO>> GetTrialListByReviewer(ReviewerTrialQueryDTO searchModel)
{ {
var query = _trialRepository var query = _trialRepository
.WhereIf(searchModel.EnrollStatus != null, o => (int)searchModel.EnrollStatus! == 10 ? o.EnrollList.Any(o => o.EnrollStatus >= 10 && o.EnrollStatus <= 13 && o.DoctorId == _userInfo.Id) : o.EnrollList.Any(o => o.EnrollStatus == searchModel.EnrollStatus && o.DoctorId == _userInfo.Id)) .WhereIf(searchModel.EnrollStatus != null, o => (int)searchModel.EnrollStatus! == 10 ?
o.EnrollList.Any(o => o.EnrollStatus >= 10 && o.EnrollStatus <= 13 && o.DoctorId == _userInfo.Id) :
o.EnrollList.Any(o => o.EnrollStatus == searchModel.EnrollStatus && o.DoctorId == _userInfo.Id))
.WhereIf(searchModel.Expedited != null, o => o.Expedited == searchModel.Expedited) .WhereIf(searchModel.Expedited != null, o => o.Expedited == searchModel.Expedited)
.WhereIf(!string.IsNullOrEmpty(searchModel.Code), o => o.TrialCode.Contains(searchModel.Code)) .WhereIf(!string.IsNullOrEmpty(searchModel.Code), o => o.TrialCode.Contains(searchModel.Code))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.Indication), o => o.Indication.Contains(searchModel.Indication)) .WhereIf(!string.IsNullOrWhiteSpace(searchModel.Indication), o => o.Indication.Contains(searchModel.Indication))

View File

@ -14,12 +14,6 @@
ConfirmRefuse = 2 ConfirmRefuse = 2
} }
public enum ReviewerEnrollStatus
{
Yes = 1,
No = 0
}
public enum ResumeStatusEnum public enum ResumeStatusEnum
{ {
None = 0, None = 0,
@ -30,6 +24,14 @@
} }
public enum ReviewerEnrollStatus
{
Yes = 1,
No = 0
}
} }

View File

@ -42,7 +42,11 @@
NoneOfficial = 1, NoneOfficial = 1,
Training = 3,
All = 2, All = 2,
} }
} }

View File

@ -11,4 +11,28 @@
ExpeditedIn48H = 2 ExpeditedIn48H = 2
} }
public enum TrialType
{
//非正式项目
OfficialTrial = 0,
NoneOfficial = 1,
Training = 2
}
public enum AttendedReviewerType
{
//0全部中国医生 1美国医生 2既有中国医生也有美国医生
CN=0,
US=1,
USAndCN
}
} }

View File

@ -135,7 +135,7 @@ namespace IRaCIS.Core.Domain.Models
public string AdminComment { get; set; } = string.Empty; public string AdminComment { get; set; } = string.Empty;
public int ReviewStatus { get; set; } = 2; public ReviewerInformationConfirmStatus ReviewStatus { get; set; } = ReviewerInformationConfirmStatus.ConfirmRefuse;
public bool AcceptingNewTrial { get; set; } = false; public bool AcceptingNewTrial { get; set; } = false;
public bool ActivelyReading { get; set; } = false; public bool ActivelyReading { get; set; } = false;
@ -182,5 +182,9 @@ namespace IRaCIS.Core.Domain.Models
public virtual Dictionary Position { get; set; } public virtual Dictionary Position { get; set; }
public List<Attachment> AttachmentList { get; set; } public List<Attachment> AttachmentList { get; set; }
public bool IsVirtual { get; set; }
public string BlindName { get; set; }
} }
} }

View File

@ -7,6 +7,7 @@ namespace IRaCIS.Core.Domain.Models
public partial class CRO : Entity, IAuditUpdate, IAuditAdd public partial class CRO : Entity, IAuditUpdate, IAuditAdd
{ {
public string CROName { get; set; } = string.Empty; public string CROName { get; set; } = string.Empty;
public string CRONameCN { get; set; } = string.Empty;
public string CROCode { get; set; } public string CROCode { get; set; }
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }

View File

@ -7,6 +7,9 @@ namespace IRaCIS.Core.Domain.Models
public partial class Sponsor : Entity, IAuditUpdate, IAuditAdd public partial class Sponsor : Entity, IAuditUpdate, IAuditAdd
{ {
public string SponsorName { get; set; } = String.Empty; public string SponsorName { get; set; } = String.Empty;
public string SponsorNameCN { get; set; } = String.Empty;
public string SponsorCode { get; set; } = String.Empty;
public DateTime CreateTime { get; set; } = DateTime.Now; public DateTime CreateTime { get; set; } = DateTime.Now;
public Guid CreateUserId { get; set; } = Guid.Empty; public Guid CreateUserId { get; set; } = Guid.Empty;

View File

@ -131,7 +131,7 @@ namespace IRaCIS.Core.Domain.Models
public DateTime UpdateTime { get; set; } public DateTime UpdateTime { get; set; }
public Guid UpdateUserId { get; set; } public Guid UpdateUserId { get; set; }
public int AttendedReviewerType { get; set; } = 0;//0全部中国医生 1美国医生 2既有中国医生也有美国医生 public AttendedReviewerType AttendedReviewerType { get; set; } = AttendedReviewerType.CN;//0全部中国医生 1美国医生 2既有中国医生也有美国医生
public bool VisitPlanConfirmed { get; set; } public bool VisitPlanConfirmed { get; set; }
@ -277,9 +277,9 @@ namespace IRaCIS.Core.Domain.Models
public bool IsUrgent { get; set; } public bool IsUrgent { get; set; }
/// <summary> /// <summary>
/// 项目类型 1 正式项目、0 非正式项目 /// 项目类型 1 正式项目、0 非正式项目 2是培训项目
/// </summary>time /// </summary>time
public int TrialType { get; set; } public TrialType TrialType { get; set; }
//public string TempCode { get; set; } //public string TempCode { get; set; }