修改医生

This commit is contained in:
2022-08-03 15:14:39 +08:00
parent 2c28677323
commit 99cb6fd6d8
21 changed files with 102 additions and 28 deletions
@@ -21,7 +21,7 @@ namespace IRaCIS.Application.Services
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);
@@ -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();
@@ -354,7 +354,7 @@ namespace IRaCIS.Application.Services
sysUserInfo.FullName,
sysUserInfo.UserName,
sysUserInfo.UserTypeRole.UserTypeShortName,
AppSettings.DefaultPassword
pwdNotMd5
);
}
@@ -626,12 +626,16 @@ namespace IRaCIS.Application.Contracts
//public Guid FromUserId { get; set; }
public Guid Id { 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 ActivelyReading { get; set; } = false;
public string AdminComment { get; set; } = String.Empty;
public string MessageContent { get; set; } = String.Empty;
public ContractorStatusEnum CooperateStatus { get; set; }
public bool IsVirtual { get; set; }
public string BlindName { get; set; } = String.Empty;
}
public class ResumeConfirmDTO
@@ -67,8 +67,9 @@ namespace IRaCIS.Application.Services
ReviewerSelectionQueryDTO selectionQuery)
{
//项目配置需要的医生过滤 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();
@@ -77,9 +78,10 @@ namespace IRaCIS.Application.Services
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.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.PositionId != null, t => t.PositionId == selectionQuery.PositionId)
.WhereIf(selectionQuery.RankId != null, t => t.RankId == selectionQuery.RankId)
@@ -438,6 +438,8 @@ namespace IRaCIS.Application.Services
ReviewStatus = auditResumeParam.ReviewStatus,
AcceptingNewTrial = auditResumeParam.AcceptingNewTrial,
ActivelyReading = auditResumeParam.ActivelyReading,
IsVirtual=auditResumeParam.IsVirtual,
BlindName=auditResumeParam.BlindName,
AuditTime = DateTime.Now,
AuditUserId = userId
});
@@ -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.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.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)));
CreateMap<Hospital, DoctorDTO>();
@@ -1,4 +1,5 @@
using System;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Application.Contracts
@@ -173,6 +174,6 @@ namespace IRaCIS.Application.Contracts
public DateTime BeginDate { get; set; }
public DateTime EndDate { get; set; }
public int? AttendedReviewerType { get; set; }
public AttendedReviewerType? AttendedReviewerType { get; set; }
}
}
@@ -21,7 +21,9 @@ namespace IRaCIS.Application.Services
[HttpPost]
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);
return await croQueryable.ToPagedListAsync(croCompanySearchModel.PageIndex, croCompanySearchModel.PageSize,
@@ -8,6 +8,9 @@ namespace IRaCIS.Application.Contracts
public Guid? Id { get; set; }
public string CROName { get; set; } = string.Empty;
public string CROCode { get; set; } = string.Empty;
public string CRONameCN { get; set; } = string.Empty;
}
public class CroSelectDTO
@@ -15,10 +18,13 @@ namespace IRaCIS.Application.Contracts
public Guid Id { get; set; }
public string CROName { get; set; } = string.Empty;
public string CROCode { get; set; } = string.Empty;
public string CRONameCN { get; set; } = string.Empty;
}
public class CROCompanyQueryDTO : PageInput
{
public string CROCode { get; set; } = string.Empty;
public string CROName { get; set; } = string.Empty;
}
@@ -13,11 +13,18 @@ namespace IRaCIS.Application.Contracts
{
public Guid? Id { get; set; }
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 string SponsorName { get; set; } = string.Empty;
public string SponsorCode { get; set; } = String.Empty;
}
public class SponsorSelectDTO
@@ -23,7 +23,8 @@ namespace IRaCIS.Application.Services
{
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);
return await sponsorQueryable.ToPagedListAsync(sponsorSearchModel.PageIndex,
@@ -248,11 +248,19 @@ namespace IRaCIS.Application.Services
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()
{
Password = MD5Helper.Md5(AppSettings.DefaultPassword),
Password = MD5Helper.Md5(pwd),
IsFirstAdd = true
});
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.Extention;
namespace IRaCIS.Application.Contracts
@@ -147,7 +148,7 @@ namespace IRaCIS.Application.Contracts
//医生付费类型 CN US
public int? Nation { get; set; }
public int? AttendedReviewerType { get; set; }
public AttendedReviewerType? AttendedReviewerType { get; set; }
}
public class StatisticsWorkloadQueryParam : PageInput
@@ -10,7 +10,7 @@ namespace IRaCIS.Application.Contracts
{
public int? PlanSiteCount { get; set; }
public int? PlanVisitCount { get; set; }
public int TrialType { get; set; }
public TrialType TrialType { get; set; }
public Guid? Id { get; set; }
public string TrialCode { 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? EndDate { get; set; }
public int? Expedited { get; set; }
public int? AttendedReviewerType { get; set; }
public AttendedReviewerType? AttendedReviewerType { get; set; }
}
public class ReviewerTrialQueryDTO : PageInput
@@ -156,7 +156,7 @@ namespace IRaCIS.Application.Services
var yearStr = DateTime.Now.Year.ToString();
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)
{
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(!string.IsNullOrEmpty(searchModel.Code), o => o.TrialCode.Contains(searchModel.Code))
.WhereIf(!string.IsNullOrWhiteSpace(searchModel.Indication), o => o.Indication.Contains(searchModel.Indication))