修改医生
parent
2c28677323
commit
99cb6fd6d8
|
@ -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))
|
||||
|
|
|
@ -14,12 +14,6 @@
|
|||
ConfirmRefuse = 2
|
||||
}
|
||||
|
||||
|
||||
public enum ReviewerEnrollStatus
|
||||
{
|
||||
Yes = 1,
|
||||
No = 0
|
||||
}
|
||||
public enum ResumeStatusEnum
|
||||
{
|
||||
None = 0,
|
||||
|
@ -30,6 +24,14 @@
|
|||
}
|
||||
|
||||
|
||||
|
||||
public enum ReviewerEnrollStatus
|
||||
{
|
||||
Yes = 1,
|
||||
No = 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -42,7 +42,11 @@
|
|||
|
||||
NoneOfficial = 1,
|
||||
|
||||
Training = 3,
|
||||
|
||||
All = 2,
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -11,4 +11,28 @@
|
|||
|
||||
ExpeditedIn48H = 2
|
||||
}
|
||||
|
||||
public enum TrialType
|
||||
{
|
||||
|
||||
//非正式项目
|
||||
OfficialTrial = 0,
|
||||
|
||||
NoneOfficial = 1,
|
||||
|
||||
Training = 2
|
||||
|
||||
|
||||
}
|
||||
|
||||
public enum AttendedReviewerType
|
||||
{
|
||||
//0全部中国医生 1美国医生 2既有中国医生,也有美国医生
|
||||
|
||||
CN=0,
|
||||
|
||||
US=1,
|
||||
|
||||
USAndCN
|
||||
}
|
||||
}
|
|
@ -135,7 +135,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
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 ActivelyReading { get; set; } = false;
|
||||
|
@ -182,5 +182,9 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public virtual Dictionary Position { get; set; }
|
||||
|
||||
public List<Attachment> AttachmentList { get; set; }
|
||||
|
||||
public bool IsVirtual { get; set; }
|
||||
|
||||
public string BlindName { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public partial class CRO : Entity, IAuditUpdate, IAuditAdd
|
||||
{
|
||||
public string CROName { get; set; } = string.Empty;
|
||||
public string CRONameCN { get; set; } = string.Empty;
|
||||
public string CROCode { get; set; }
|
||||
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
|
|
@ -7,6 +7,9 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public partial class Sponsor : Entity, IAuditUpdate, IAuditAdd
|
||||
{
|
||||
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 Guid CreateUserId { get; set; } = Guid.Empty;
|
||||
|
|
|
@ -131,7 +131,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public DateTime UpdateTime { 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; }
|
||||
|
||||
|
@ -277,9 +277,9 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public bool IsUrgent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目类型 1 正式项目、0 非正式项目
|
||||
/// 项目类型 1 正式项目、0 非正式项目 2是培训项目
|
||||
/// </summary>time
|
||||
public int TrialType { get; set; }
|
||||
public TrialType TrialType { get; set; }
|
||||
|
||||
//public string TempCode { get; set; }
|
||||
|
||||
|
|
Loading…
Reference in New Issue