任务阅片修改
parent
711c3f3639
commit
a1f80cdd95
|
@ -9461,7 +9461,7 @@
|
|||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.SendVerifyCode(IRaCIS.Core.Application.Contracts.SiteSurveySendVerifyCode)">
|
||||
<summary>
|
||||
发送验证码
|
||||
site 调研 发送验证码
|
||||
</summary>
|
||||
<param name="userInfo"></param>
|
||||
<returns></returns>
|
||||
|
@ -9520,14 +9520,6 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.SubmissionRejection(System.Guid,System.Guid)">
|
||||
<summary>
|
||||
驳回
|
||||
</summary>
|
||||
<param name="trialId"></param>
|
||||
<param name="trialSiteSurveyId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:IRaCIS.Core.Application.Contracts.TrialSiteSurveyService.TrialSurveySubmit(IRaCIS.Core.Application.Contracts.TrialSiteSurvyeSubmitDTO)">
|
||||
<summary>
|
||||
提交 后台自动识别是谁提交
|
||||
|
|
|
@ -17,5 +17,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
Task<IResponseOutput> ConfirmReReading(ConfirmReReadingCommand agreeReReadingCommand, [FromServices] IVisitTaskHelpeService _visitTaskCommonService);
|
||||
|
||||
Task<(int, List<IRUnReadSubjectView>)> GetOrderReadingIQueryable(GetOrderReadingIQueryableInDto inDto);
|
||||
|
||||
Task<IQueryable<VisitTask>> GetNotOrderReadingQueryableAsync(Guid trialId, Guid trialReadingCriterionId);
|
||||
}
|
||||
}
|
|
@ -518,44 +518,17 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
else
|
||||
{
|
||||
|
||||
var readingDivisionEnum = critrion.ReadingDivisionEnum;
|
||||
|
||||
var piReadingScopenEnum = critrion.PIReadingScopenEnum;
|
||||
|
||||
var taskQuery = _visitTaskRepository.Where(x => x.TrialId == iRUnReadSubjectQuery.TrialId /*&& x.DoctorUserId == _userInfo.Id*/ && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId)
|
||||
|
||||
.Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR, t => t.Subject.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id))
|
||||
// 仅仅SR阅片 PI 没有任务列表
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.OnlySR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI, t => t.TrialId == Guid.Empty)
|
||||
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == true)
|
||||
|
||||
//PI 阅片所有
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit,
|
||||
t => true)
|
||||
var taskQuery = await GetNotOrderReadingQueryableAsync(iRUnReadSubjectQuery.TrialId, trialReadingCriterionId);
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == false)
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == false)
|
||||
|
||||
//SR 不阅片
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit,
|
||||
t => t.TrialId == Guid.Empty)
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == true);
|
||||
|
||||
IRUnReadOutDto iRUnReadOut = new IRUnReadOutDto()
|
||||
{
|
||||
FinishTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).CountAsync(),
|
||||
SuggesteFinishedTime = await taskQuery.Where(x => x.ReadingTaskState != ReadingTaskState.HaveSigned).MaxAsync(x => x.SuggesteFinishedTime),
|
||||
|
||||
|
||||
UnReadTaskCount = await taskQuery.Where(x => x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState != ReadingTaskState.HaveSigned).CountAsync(),
|
||||
};
|
||||
|
||||
|
@ -586,6 +559,46 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
|||
|
||||
}
|
||||
|
||||
|
||||
public async Task<IQueryable<VisitTask>> GetNotOrderReadingQueryableAsync(Guid trialId, Guid trialReadingCriterionId)
|
||||
{
|
||||
var critrion = await _trialReadingCriterionRepository.FindAsync(trialReadingCriterionId);
|
||||
|
||||
var readingDivisionEnum = critrion.ReadingDivisionEnum;
|
||||
|
||||
var piReadingScopenEnum = critrion.PIReadingScopenEnum;
|
||||
|
||||
var taskQuery = _visitTaskRepository.Where(x => x.TrialId == trialId /*&& x.DoctorUserId == _userInfo.Id*/ && x.TaskState == TaskState.Effect && x.TrialReadingCriterionId == trialReadingCriterionId)
|
||||
|
||||
.Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign)
|
||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR, t => t.Subject.TrialSite.CRCUserList.Any(u => u.UserId == _userInfo.Id))
|
||||
// 仅仅SR阅片 PI 没有任务列表
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.OnlySR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI, t => t.TrialId == Guid.Empty)
|
||||
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == true)
|
||||
|
||||
//PI 阅片所有
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit,
|
||||
t => true)
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.PI && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == false)
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaseline,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == false)
|
||||
|
||||
//SR 不阅片
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllBaselineandVisit,
|
||||
t => t.TrialId == Guid.Empty)
|
||||
|
||||
.WhereIf(readingDivisionEnum == ReadingDivisionEnum.PIandSR && _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SR && piReadingScopenEnum == PIReadingScopenEnum.AllVisit,
|
||||
t => t.SourceSubjectVisit.IsBaseLine == true);
|
||||
|
||||
return taskQuery;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取有序阅片IQuery对象
|
||||
/// </summary>
|
||||
|
|
|
@ -2335,11 +2335,32 @@ namespace IRaCIS.Application.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
//无序取数据
|
||||
task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned /*&& x.DoctorUserId == _userInfo.Id*/
|
||||
&& x.TrialReadingCriterionId == trialReadingCriterionId
|
||||
&& x.TaskState == TaskState.Effect)
|
||||
.Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign)
|
||||
|
||||
#region 这里多了分配,删除之前的逻辑
|
||||
////无序取数据
|
||||
//task = await _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.TrialReadingCriterionId == trialReadingCriterionId && x.ReadingTaskState != ReadingTaskState.HaveSigned /*&& x.DoctorUserId == _userInfo.Id*/
|
||||
//&& x.TrialReadingCriterionId == trialReadingCriterionId
|
||||
//&& x.TaskState == TaskState.Effect)
|
||||
// .Where(x => (x.IsNeedClinicalDataSign && x.IsClinicalDataSign) || !x.IsNeedClinicalDataSign)
|
||||
// .Select(x => new GetReadingTaskDto()
|
||||
// {
|
||||
// VisitTaskId = x.Id,
|
||||
// ArmEnum = x.ArmEnum,
|
||||
// TaskBlindName = x.TaskBlindName,
|
||||
// ReadingCategory = x.ReadingCategory,
|
||||
// VisistId = x.SourceSubjectVisitId != null ? x.SourceSubjectVisitId.Value : x.ReadModule == null ? default(Guid) : x.ReadModule.SubjectVisitId,
|
||||
// VisitNum = x.VisitTaskNum,
|
||||
// SubjectId = x.SubjectId,
|
||||
// SubjectCode = x.Subject.Code,
|
||||
// TrialReadingCriterionId = x.TrialReadingCriterionId,
|
||||
// }).OrderByDescending(t => t.TaskBlindName).FirstOrDefaultAsync();
|
||||
#endregion
|
||||
|
||||
var taskQuery = await _visitTaskService.GetNotOrderReadingQueryableAsync(inDto.TrialId,(Guid) trialReadingCriterionId);
|
||||
|
||||
var list = taskQuery.ToList();
|
||||
|
||||
task = await taskQuery.OrderByDescending(t => t.TaskBlindName)
|
||||
.Select(x => new GetReadingTaskDto()
|
||||
{
|
||||
VisitTaskId = x.Id,
|
||||
|
|
|
@ -97,7 +97,7 @@ namespace IRaCIS.Application.Services
|
|||
// 最开始过滤site已经选择的用户 现在又改回去。。。
|
||||
|
||||
var query = _trialUseRepository.Where(t => t.TrialId == param.TrialId).IgnoreQueryFilters()
|
||||
.Where(t => t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || t.User.UserTypeEnum == UserTypeEnum.CRA)
|
||||
.Where(t => t.User.UserTypeEnum == UserTypeEnum.ClinicalResearchCoordinator || t.User.UserTypeEnum == UserTypeEnum.CRA ||t.User.UserTypeEnum==UserTypeEnum.SR)
|
||||
.WhereIf(param.UserTypeId != null, t => t.User.UserTypeId == param.UserTypeId)
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(param.UserRealName), t => (t.User.FullName).Contains(param.UserRealName))
|
||||
.WhereIf(!string.IsNullOrWhiteSpace(param.OrganizationName), t => t.User.OrganizationName.Contains(param.OrganizationName))
|
||||
|
|
Loading…
Reference in New Issue