修改医生

Test.EIImageViewer
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 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
);
}

View File

@ -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

View File

@ -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)

View File

@ -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
});

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.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>();

View File

@ -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; }
}
}

View File

@ -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,

View File

@ -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;
}

View File

@ -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

View File

@ -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,

View File

@ -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
});

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -14,12 +14,6 @@
ConfirmRefuse = 2
}
public enum ReviewerEnrollStatus
{
Yes = 1,
No = 0
}
public enum ResumeStatusEnum
{
None = 0,
@ -31,5 +25,13 @@
public enum ReviewerEnrollStatus
{
Yes = 1,
No = 0
}
}

View File

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

View File

@ -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
}
}

View File

@ -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; }
}
}

View File

@ -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; }

View File

@ -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;

View File

@ -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; }