阅片人入组
parent
6c0317d93d
commit
481b232f23
|
@ -7038,7 +7038,7 @@
|
|||
<summary> 分页获取医生参与的临床实验项目列表(查询条件)</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Application.Services.TrialService.UpdateEnrollStatus(System.Guid,System.Int32)">
|
||||
<member name="M:IRaCIS.Application.Services.TrialService.UpdateEnrollStatus(System.Guid,IRaCIS.Core.Domain.Share.EnrollStatus)">
|
||||
<summary>
|
||||
医生确认入组或拒绝入组
|
||||
</summary>
|
||||
|
|
|
@ -158,7 +158,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
[HttpGet("{trialId:guid}")]
|
||||
public async Task<List<TrialDoctorUserSelectView>> GetDoctorUserSelectList(Guid trialId, [FromServices] IRepository<Enroll> _enrollRepository)
|
||||
{
|
||||
var query = from enroll in _enrollRepository.Where(t => t.TrialId == trialId && t.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup)
|
||||
var query = from enroll in _enrollRepository.Where(t => t.TrialId == trialId && t.EnrollStatus >= EnrollStatus.ConfirmIntoGroup)
|
||||
join user in _userRepository.AsQueryable() on enroll.DoctorId equals user.DoctorId
|
||||
select new TrialDoctorUserSelectView()
|
||||
{
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace IRaCIS.Application.Services
|
|||
//用户类型 看到简历的范围这里需要确认
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ReviewerCoordinator, t => t.UserList.Any(u => u.UserId == _userInfo.Id))
|
||||
.WhereIf(count > 0, t => t.DoctorDicRelationList.Count(u => guidList.Contains(u.DictionaryId)) == count)
|
||||
.WhereIf(doctorSearch.EnrollStatus != null && doctorSearch.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.DoctorReading))
|
||||
.WhereIf(doctorSearch.EnrollStatus != null && doctorSearch.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.DoctorReading))
|
||||
|
||||
.ProjectTo<DoctorDTO>(_mapper.ConfigurationProvider);
|
||||
|
||||
|
@ -93,14 +93,14 @@ namespace IRaCIS.Application.Services
|
|||
//用户类型 看到简历的范围这里需要确认
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ReviewerCoordinator, t => t.UserList.Any(u => u.UserId == _userInfo.Id))
|
||||
.WhereIf(count > 0, t => t.DoctorDicRelationList.Count(u => guidList.Contains(u.DictionaryId)) == count)
|
||||
.WhereIf(selectionQuery.EnrollStatus != null && selectionQuery.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.DoctorReading))
|
||||
.WhereIf(selectionQuery.EnrollStatus != null && selectionQuery.EnrollStatus == (int)ReviewerEnrollStatus.Yes, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.DoctorReading))
|
||||
|
||||
.ProjectTo<SelectionReviewerDTO>(_mapper.ConfigurationProvider);
|
||||
|
||||
var result = await query.ToPagedListAsync(selectionQuery.PageIndex, selectionQuery.PageSize, selectionQuery.SortField == string.Empty ? "ReviewerCode" : selectionQuery.SortField, selectionQuery.Asc);
|
||||
|
||||
//是否已申请 申请时间 申请人
|
||||
var doctorStateList = await _repository.Where<EnrollDetail>(x => x.TrialId == selectionQuery.TrialId && x.EnrollStatus == (int)EnrollStatus.HasApplyDownloadResume)
|
||||
var doctorStateList = await _repository.Where<EnrollDetail>(x => x.TrialId == selectionQuery.TrialId && x.EnrollStatus == EnrollStatus.HasApplyDownloadResume)
|
||||
.ProjectTo<DoctorStateModelDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
result.CurrentPageData.ToList().ForEach(doctor =>
|
||||
|
@ -133,9 +133,9 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
var doctorQuery = _repository.Where<Enroll>(x => x.TrialId == param.TrialId)
|
||||
//提交CRO 以及下载简历列表
|
||||
.WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus >= (int)EnrollStatus.HasApplyDownloadResume)
|
||||
.WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus >= EnrollStatus.HasApplyDownloadResume)
|
||||
//CRO确认列表 状态为 已提交CRO
|
||||
.WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus >= (int)EnrollStatus.HasCommittedToCRO)
|
||||
.WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus >= EnrollStatus.HasCommittedToCRO)
|
||||
.ProjectTo<ConfirmationReviewerDTO>(_mapper.ConfigurationProvider);
|
||||
|
||||
var doctorPageList = await doctorQuery.ToPagedListAsync(param.PageIndex, param.PageSize, param.SortField == "" ? "Code" : param.SortField, param.Asc);
|
||||
|
@ -143,9 +143,9 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
var enrollStateList = await _repository.Where<EnrollDetail>(x => x.TrialId == param.TrialId)
|
||||
//提交CRO 以及下载简历列表
|
||||
.WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO)
|
||||
.WhereIf(param.IntoGroupSearchState == 1, t => t.EnrollStatus == EnrollStatus.HasCommittedToCRO)
|
||||
//CRO确认列表 状态为 已提交CRO
|
||||
.WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup)
|
||||
.WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == EnrollStatus.InviteIntoGroup)
|
||||
.ProjectTo<DoctorStateModelDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
|
||||
|
@ -167,7 +167,7 @@ namespace IRaCIS.Application.Services
|
|||
//SPM 要看到提交的时间 提交人
|
||||
var enrollCommitList = await _repository.Where<EnrollDetail>(x => x.TrialId == param.TrialId)
|
||||
//提交CRO 以及下载简历列表
|
||||
.WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO)
|
||||
.WhereIf(param.IntoGroupSearchState == 4, t => t.EnrollStatus == EnrollStatus.HasCommittedToCRO)
|
||||
.ProjectTo<DoctorStateModelDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
|
||||
|
@ -235,12 +235,12 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
|
||||
|
||||
var doctorQuery = _repository.Where<Enroll>(x => x.TrialId == param.TrialId && x.EnrollStatus >= (int)EnrollStatus.InviteIntoGroup)
|
||||
var doctorQuery = _repository.Where<Enroll>(x => x.TrialId == param.TrialId && x.EnrollStatus >= EnrollStatus.InviteIntoGroup)
|
||||
.ProjectTo<ConfirmationReviewerDTO>(_mapper.ConfigurationProvider);
|
||||
|
||||
var doctorPageList = await doctorQuery.ToPagedListAsync(param.PageIndex, param.PageSize, param.SortField == "" ? "Code" : param.SortField, param.Asc);
|
||||
|
||||
var enrollStateList = await _repository.Where<EnrollDetail>(x => x.TrialId == param.TrialId && x.EnrollStatus > (int)EnrollStatus.InviteIntoGroup)
|
||||
var enrollStateList = await _repository.Where<EnrollDetail>(x => x.TrialId == param.TrialId && x.EnrollStatus > EnrollStatus.InviteIntoGroup)
|
||||
.ProjectTo<DoctorStateModelDTO>(_mapper.ConfigurationProvider).ToListAsync();
|
||||
|
||||
|
||||
|
|
|
@ -505,11 +505,11 @@ namespace IRaCIS.Application.Services
|
|||
// t.EnrollStatus == (int)EnrollStatus.DoctorReading ? 1 : 0)
|
||||
|
||||
Submitted = g.Count(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO),
|
||||
t.EnrollStatus == EnrollStatus.HasCommittedToCRO),
|
||||
Approved = g.Count(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup),
|
||||
t.EnrollStatus == EnrollStatus.InviteIntoGroup),
|
||||
Reading = g.Count(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.DoctorReading)
|
||||
t.EnrollStatus == EnrollStatus.DoctorReading)
|
||||
};
|
||||
|
||||
return doctorQueryable.FirstOrDefault().IfNullThrowException();
|
||||
|
@ -522,7 +522,7 @@ namespace IRaCIS.Application.Services
|
|||
[HttpGet("{doctorId:guid}")]
|
||||
public List<SowDTO> GetDoctorSowList(Guid doctorId)
|
||||
{
|
||||
var query = from enroll in _enrollRepository.Where(u => u.DoctorId == doctorId && u.EnrollStatus >= 10)
|
||||
var query = from enroll in _enrollRepository.Where(u => u.DoctorId == doctorId && u.EnrollStatus >= EnrollStatus.ConfirmIntoGroup)
|
||||
join trialExt in _trialExtRepository.AsQueryable() on enroll.TrialId equals trialExt.TrialId
|
||||
join trial in _trialRepository.AsQueryable() on enroll.TrialId equals trial.Id
|
||||
select new SowDTO
|
||||
|
|
|
@ -90,10 +90,10 @@ namespace IRaCIS.Core.Application.Service
|
|||
.ForMember(d => d.Speciality, u => u.MapFrom(s => s.Speciality.Value))
|
||||
.ForMember(d => d.SpecialityCN, u => u.MapFrom(s => s.Speciality.ValueCN))
|
||||
.ForMember(d => d.HasResume, u => u.MapFrom(s => s.AttachmentList.Any(u => u.Type == "Resume" && u.IsOfficial)))
|
||||
.ForMember(d => d.Submitted, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO)))
|
||||
.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.Submitted, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.HasCommittedToCRO)))
|
||||
.ForMember(d => d.Approved, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.InviteIntoGroup)))
|
||||
.ForMember(d => d.Reading, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.DoctorReading)))
|
||||
.ForMember(d => d.Finished, u => u.MapFrom(s => s.EnrollList.Count(t => t.EnrollStatus == EnrollStatus.Finished)))
|
||||
.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>();
|
||||
|
|
|
@ -35,7 +35,7 @@ namespace IRaCIS.Core.Application.Service.Inspection
|
|||
trialData.TrialFinishTime = trialData.TrialFinishTime == null ? DateTime.Now : trialData.TrialFinishTime;
|
||||
|
||||
#region 逻辑代码
|
||||
var query = from data in _repository.GetQueryable<DataInspection>().Where(x => (x.TrialId == dto.TrialId)||(x.TrialId==null&&x.CreateTime> trialData.CreateTime&&x.CreateTime < trialData.TrialFinishTime))
|
||||
var query = from data in _repository.GetQueryable<DataInspection>().Where(x => (x.TrialId == dto.TrialId)||(x.TrialId==null&&x.CreateTime>= trialData.CreateTime && x.CreateTime <= trialData.TrialFinishTime))
|
||||
|
||||
join trial in _repository.GetQueryable<Trial>().IgnoreQueryFilters() on data.TrialId equals trial.Id into trialtemp
|
||||
from leftrial in trialtemp.DefaultIfEmpty()
|
||||
|
|
|
@ -217,13 +217,13 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
DoctorId = g.Key.DoctorId,
|
||||
Submitted = g.Sum(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO ? 1 : 0),
|
||||
t.EnrollStatus == EnrollStatus.HasCommittedToCRO ? 1 : 0),
|
||||
Approved = g.Sum(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup ? 1 : 0),
|
||||
t.EnrollStatus == EnrollStatus.InviteIntoGroup ? 1 : 0),
|
||||
Reading = g.Sum(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.DoctorReading ? 1 : 0),
|
||||
t.EnrollStatus == EnrollStatus.DoctorReading ? 1 : 0),
|
||||
Finished = g.Sum(t =>
|
||||
t.EnrollStatus >= (int)EnrollStatus.Finished ? 1 : 0),
|
||||
t.EnrollStatus >= EnrollStatus.Finished ? 1 : 0),
|
||||
};
|
||||
|
||||
|
||||
|
@ -318,7 +318,7 @@ namespace IRaCIS.Application.Services
|
|||
#endregion
|
||||
|
||||
var trialEnrollStatQuery = _enrollRepository.AsQueryable()
|
||||
.Where(t => t.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup).GroupBy(t => t.TrialId).Select(g => new
|
||||
.Where(t => t.EnrollStatus >= EnrollStatus.ConfirmIntoGroup).GroupBy(t => t.TrialId).Select(g => new
|
||||
{
|
||||
TrialId = g.Key,
|
||||
EnrollCount = g.Count()
|
||||
|
@ -356,7 +356,7 @@ namespace IRaCIS.Application.Services
|
|||
var trialIds = trialList.Select(t => t.TrialId).ToList();
|
||||
|
||||
var enrollReviewerQuery = from enroll in _enrollRepository.AsQueryable()
|
||||
.Where(t => t.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup && trialIds.Contains(t.TrialId))
|
||||
.Where(t => t.EnrollStatus >= EnrollStatus.ConfirmIntoGroup && trialIds.Contains(t.TrialId))
|
||||
join reviewer in _doctorRepository.AsQueryable() on enroll.DoctorId equals reviewer.Id
|
||||
|
||||
select new
|
||||
|
@ -662,7 +662,7 @@ namespace IRaCIS.Application.Services
|
|||
var endMonth = DateTime.Now;
|
||||
var querySql = from enrollDetail in _enrollDetailRepository.Where(t =>
|
||||
t.CreateTime > beginMonth && t.CreateTime < endMonth &&
|
||||
t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup)
|
||||
t.EnrollStatus == EnrollStatus.ConfirmIntoGroup)
|
||||
select new
|
||||
{
|
||||
|
||||
|
@ -726,7 +726,7 @@ namespace IRaCIS.Application.Services
|
|||
var endMonth = DateTime.Now;
|
||||
var querySql = from enrollDetail in _enrollDetailRepository.Where(t =>
|
||||
t.CreateTime > beginMonth && t.CreateTime < endMonth &&
|
||||
t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup)
|
||||
t.EnrollStatus == EnrollStatus.ConfirmIntoGroup)
|
||||
select new
|
||||
{
|
||||
|
||||
|
@ -786,7 +786,7 @@ namespace IRaCIS.Application.Services
|
|||
public List<TrialDataRankDTO> GetTrialCountRank(int topCount)
|
||||
{
|
||||
var queryList = (from enrollDetail in _enrollDetailRepository.Where(t =>
|
||||
t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup)
|
||||
t.EnrollStatus == EnrollStatus.ConfirmIntoGroup)
|
||||
group enrollDetail by enrollDetail.DoctorId
|
||||
into g
|
||||
select new
|
||||
|
|
|
@ -202,7 +202,7 @@ namespace IRaCIS.Application.Contracts
|
|||
{
|
||||
public string Code { get; set; } = string.Empty;
|
||||
public string Indication { get; set; } = string.Empty;
|
||||
public int? EnrollStatus { get; set; }
|
||||
public EnrollStatus? EnrollStatus { get; set; }
|
||||
public int? Expedited { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using IRaCIS.Application.Contracts;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
|
||||
namespace IRaCIS.Application.Interfaces
|
||||
{
|
||||
|
@ -17,6 +18,6 @@ namespace IRaCIS.Application.Interfaces
|
|||
Task<PageOutput<TrialDetailDTO>> GetTrialList(TrialQueryDTO searchParam);
|
||||
Task<PageOutput<TrialDetailDTO>> GetTrialListByReviewer(ReviewerTrialQueryDTO searchModel);
|
||||
Task<int> GetTrialMaxState(Guid trialId);
|
||||
Task<IResponseOutput> UpdateEnrollStatus(Guid trialId, int status);
|
||||
Task<IResponseOutput> UpdateEnrollStatus(Guid trialId, EnrollStatus status);
|
||||
}
|
||||
}
|
|
@ -546,7 +546,7 @@ namespace IRaCIS.Core.Application
|
|||
{
|
||||
await _repository.BatchUpdateAsync<Enroll>(u => u.TrialId == trialId, e => new Enroll
|
||||
{
|
||||
EnrollStatus = (int)EnrollStatus.Finished
|
||||
EnrollStatus = EnrollStatus.Finished
|
||||
});
|
||||
|
||||
await _trialRepository.BatchUpdateNoTrackingAsync(u => u.Id == trialId, s => new Trial { TrialFinishedTime = DateTime.UtcNow.AddHours(8) });
|
||||
|
|
|
@ -465,10 +465,10 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
|
||||
var query = _trialRepository.AsQueryable()
|
||||
.WhereIf(param.Status == 5, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO))
|
||||
.WhereIf(param.Status == 8, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.InviteIntoGroup))
|
||||
.WhereIf(param.Status == 10, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.DoctorReading))
|
||||
.WhereIf(param.Status == 14, t => t.EnrollList.Any(u => u.EnrollStatus == (int)EnrollStatus.Finished))
|
||||
.WhereIf(param.Status == 5, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.HasCommittedToCRO))
|
||||
.WhereIf(param.Status == 8, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.InviteIntoGroup))
|
||||
.WhereIf(param.Status == 10, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.DoctorReading))
|
||||
.WhereIf(param.Status == 14, t => t.EnrollList.Any(u => u.EnrollStatus == EnrollStatus.Finished))
|
||||
.ProjectTo<TrialDetailDTO>(_mapper.ConfigurationProvider, new { userTypeEnumInt = _userInfo.UserTypeEnumInt, userId = _userInfo.Id });
|
||||
|
||||
return await query.ToPagedListAsync(param.PageIndex, param.PageSize, string.IsNullOrWhiteSpace(param.SortField) ? "CreateTime" : param.SortField, param.Asc);
|
||||
|
@ -483,7 +483,7 @@ namespace IRaCIS.Application.Services
|
|||
public async Task<List<Guid>> GetTrialEnrollmentReviewerIds(Guid trialId)
|
||||
{
|
||||
return await _repository.Where<Enroll>(u => u.TrialId == trialId &&
|
||||
u.EnrollStatus >= (int)EnrollStatus.DoctorReading).Select(u => u.DoctorId).Distinct().ToListAsync();
|
||||
u.EnrollStatus >= EnrollStatus.DoctorReading).Select(u => u.DoctorId).Distinct().ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
|
@ -498,7 +498,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
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 >= EnrollStatus.ConfirmIntoGroup && o.EnrollStatus <= EnrollStatus.DoctorReading && 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))
|
||||
|
@ -523,7 +523,7 @@ namespace IRaCIS.Application.Services
|
|||
[HttpPost("{trialId:guid}/{status:int}")]
|
||||
|
||||
[TypeFilter(typeof(TrialResourceFilter))]
|
||||
public async Task<IResponseOutput> UpdateEnrollStatus(Guid trialId, int status)
|
||||
public async Task<IResponseOutput> UpdateEnrollStatus(Guid trialId, EnrollStatus status)
|
||||
{
|
||||
await _repository.AddAsync(new EnrollDetail()
|
||||
{
|
||||
|
|
|
@ -166,7 +166,7 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
var doctorIntoGroupQueryable =
|
||||
|
||||
from intoGroup in _enrollRepository.Where(x => x.TrialId == trialId && x.EnrollStatus >= (int)EnrollStatus.ConfirmIntoGroup)
|
||||
from intoGroup in _enrollRepository.Where(x => x.TrialId == trialId && x.EnrollStatus >= EnrollStatus.ConfirmIntoGroup)
|
||||
join doctor in _doctorRepository.AsQueryable() on intoGroup.DoctorId equals doctor.Id
|
||||
join attachmentItem in _attachmentRepository.AsQueryable() on intoGroup.AttachmentId equals attachmentItem.Id into cc
|
||||
from attachment in cc.DefaultIfEmpty()
|
||||
|
@ -682,7 +682,7 @@ namespace IRaCIS.Application.Services
|
|||
await _enrollRepository.BatchUpdateNoTrackingAsync(
|
||||
t => t.DoctorId == workLoadAddOrUpdateModel.DoctorId && t.TrialId == workLoadAddOrUpdateModel.TrialId, u => new Enroll()
|
||||
{
|
||||
EnrollStatus = (int)EnrollStatus.DoctorReading,
|
||||
EnrollStatus = EnrollStatus.DoctorReading,
|
||||
});
|
||||
|
||||
var success = await _doctorWorkloadRepository.SaveChangesAsync();
|
||||
|
|
|
@ -163,14 +163,14 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
DoctorId = doctorId,
|
||||
TrialId = trialId,
|
||||
EnrollStatus = (int)EnrollStatus.HasApplyDownloadResume,
|
||||
EnrollStatus = EnrollStatus.HasApplyDownloadResume,
|
||||
});
|
||||
|
||||
await _enrollDetailRepository.AddAsync(new EnrollDetail()
|
||||
{
|
||||
DoctorId = doctorId,
|
||||
TrialId = trialId,
|
||||
EnrollStatus = (int)EnrollStatus.HasApplyDownloadResume,
|
||||
EnrollStatus = EnrollStatus.HasApplyDownloadResume,
|
||||
OptUserType = (int)SystemUserType.AdminUser,
|
||||
});
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (doctorIdArray.Contains(intoGroupItem.DoctorId))
|
||||
{
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.HasCommittedToCRO;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.HasCommittedToCRO;
|
||||
//_enrollRepository.Update(intoGroupItem);
|
||||
|
||||
await _enrollDetailRepository.AddAsync(new EnrollDetail()
|
||||
|
@ -225,7 +225,7 @@ namespace IRaCIS.Application.Services
|
|||
TrialDetailId = trialDetail.Id,
|
||||
DoctorId = intoGroupItem.DoctorId,
|
||||
TrialId = trialId,
|
||||
EnrollStatus = (int)EnrollStatus.HasCommittedToCRO,
|
||||
EnrollStatus = EnrollStatus.HasCommittedToCRO,
|
||||
OptUserType = (int)SystemUserType.AdminUser, //后台用户
|
||||
});
|
||||
}
|
||||
|
@ -242,14 +242,14 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (doctorIdArray.Contains(intoGroupItem.DoctorId))
|
||||
{
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.HasApplyDownloadResume;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.HasApplyDownloadResume;
|
||||
|
||||
//_enrollRepository.Update(intoGroupItem);
|
||||
|
||||
|
||||
var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t =>
|
||||
t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId &&
|
||||
t.EnrollStatus == (int)EnrollStatus.HasCommittedToCRO);
|
||||
t.EnrollStatus == EnrollStatus.HasCommittedToCRO);
|
||||
|
||||
await _enrollDetailRepository.DeleteAsync(deleteItem);
|
||||
}
|
||||
|
@ -305,14 +305,14 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (doctorIdArray.Contains(intoGroupItem.DoctorId))
|
||||
{
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.InviteIntoGroup;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.InviteIntoGroup;
|
||||
//_enrollRepository.Update(intoGroupItem);
|
||||
|
||||
await _enrollDetailRepository.AddAsync(new EnrollDetail()
|
||||
{
|
||||
DoctorId = intoGroupItem.DoctorId,
|
||||
TrialId = trialId,
|
||||
EnrollStatus = (int)EnrollStatus.InviteIntoGroup,
|
||||
EnrollStatus = EnrollStatus.InviteIntoGroup,
|
||||
OptUserType = (int)SystemUserType.AdminUser, //后台用户
|
||||
});
|
||||
}
|
||||
|
@ -328,13 +328,13 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (doctorIdArray.Contains(intoGroupItem.DoctorId))
|
||||
{
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.HasCommittedToCRO;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.HasCommittedToCRO;
|
||||
|
||||
//_enrollRepository.Update(intoGroupItem);
|
||||
|
||||
var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t =>
|
||||
t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId &&
|
||||
t.EnrollStatus == (int)EnrollStatus.InviteIntoGroup);
|
||||
t.EnrollStatus == EnrollStatus.InviteIntoGroup);
|
||||
|
||||
await _enrollDetailRepository.DeleteAsync(deleteItem);
|
||||
}
|
||||
|
@ -383,7 +383,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (confirmReviewerCommand.DoctorIdArray.Contains(intoGroupItem.DoctorId))
|
||||
{
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.ConfirmIntoGroup;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.ConfirmIntoGroup;
|
||||
intoGroupItem.EnrollTime = DateTime.Now;
|
||||
|
||||
var userId= await _mailVerificationService.DoctorJoinTrialEmail(trialId, intoGroupItem.DoctorId, confirmReviewerCommand.BaseUrl, confirmReviewerCommand.RouteUrl);
|
||||
|
@ -402,7 +402,7 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
DoctorId = intoGroupItem.DoctorId,
|
||||
TrialId = trialId,
|
||||
EnrollStatus = (int)EnrollStatus.ConfirmIntoGroup,
|
||||
EnrollStatus = EnrollStatus.ConfirmIntoGroup,
|
||||
OptUserType = (int)SystemUserType.AdminUser, //后台用户
|
||||
});
|
||||
}
|
||||
|
@ -415,13 +415,13 @@ namespace IRaCIS.Application.Services
|
|||
{
|
||||
if (confirmReviewerCommand.DoctorIdArray.Contains(intoGroupItem.DoctorId))
|
||||
{
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.InviteIntoGroup;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.InviteIntoGroup;
|
||||
intoGroupItem.EnrollTime = null;
|
||||
|
||||
|
||||
var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t =>
|
||||
t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId &&
|
||||
t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup);
|
||||
t.EnrollStatus == EnrollStatus.ConfirmIntoGroup);
|
||||
|
||||
await _enrollDetailRepository.DeleteAsync(deleteItem);
|
||||
}
|
||||
|
@ -460,12 +460,12 @@ namespace IRaCIS.Application.Services
|
|||
return ResponseOutput.NotOk("Reviewers with workload cannot go back");
|
||||
}
|
||||
|
||||
intoGroupItem.EnrollStatus = (int)EnrollStatus.InviteIntoGroup;
|
||||
intoGroupItem.EnrollStatus = EnrollStatus.InviteIntoGroup;
|
||||
intoGroupItem.EnrollTime = null;
|
||||
|
||||
var deleteItem = await _enrollDetailRepository.FirstOrDefaultAsync(t =>
|
||||
t.TrialId == trialId && t.DoctorId == intoGroupItem.DoctorId &&
|
||||
t.EnrollStatus == (int)EnrollStatus.ConfirmIntoGroup);
|
||||
t.EnrollStatus == EnrollStatus.ConfirmIntoGroup);
|
||||
|
||||
await _enrollDetailRepository.DeleteAsync(deleteItem);
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using IRaCIS.Core.Domain.Share;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
@ -19,7 +20,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public Guid DoctorId { get; set; }
|
||||
public Guid TrialId { get; set; }
|
||||
public Guid AttachmentId { get; set; } = Guid.Empty;
|
||||
public int EnrollStatus { get; set; }
|
||||
public EnrollStatus EnrollStatus { get; set; }
|
||||
|
||||
public decimal? AdjustmentMultiple { get; set; }
|
||||
public DateTime? EnrollTime { get; set; }
|
||||
|
@ -56,8 +57,6 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public int? Downtime { get; set; }
|
||||
|
||||
|
||||
public int DoctorTrialState { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 生成账号 加入到项目中后 赋值
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using IRaCIS.Core.Domain.Share;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
|
@ -10,7 +11,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
|
||||
public Guid DoctorId { get; set; }
|
||||
public Guid TrialId { get; set; }
|
||||
public int EnrollStatus { get; set; }
|
||||
public EnrollStatus EnrollStatus { get; set; }
|
||||
public Guid? EnrollId { get; set; }
|
||||
public string Memo { get; set; } = string.Empty;
|
||||
public Guid CreateUserId { get; set; }
|
||||
|
|
|
@ -3,6 +3,7 @@ using System.Collections.Generic;
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace IRaCIS.Core.Domain.Models
|
||||
{
|
||||
|
@ -15,6 +16,7 @@ namespace IRaCIS.Core.Domain.Models
|
|||
TrialDicList = new List<TrialDictionary>();
|
||||
}
|
||||
|
||||
|
||||
public List<TaskConsistentRule> TaskConsistentRuleList { get; set; }
|
||||
|
||||
public List<SubjectUser> SubjectDoctorUserList { get; set; } = new List<SubjectUser>();
|
||||
|
|
Loading…
Reference in New Issue