Merge branch 'master' of http://192.168.1.2:8033/IRaCIS_Core_Api
commit
c1f87bb410
|
@ -333,6 +333,14 @@ namespace IRaCIS.Core.Application.Service
|
||||||
// 有可能在任务生成之前 就签名完了临床数据
|
// 有可能在任务生成之前 就签名完了临床数据
|
||||||
private bool IsClinicalDataSign(ReadingCategory readingCategory, bool isbaseLine, CriterionType criterionType, List<ClinicalDataTrialSet> trialClinicalDataSetList, Guid readingId, Guid trialId)
|
private bool IsClinicalDataSign(ReadingCategory readingCategory, bool isbaseLine, CriterionType criterionType, List<ClinicalDataTrialSet> trialClinicalDataSetList, Guid readingId, Guid trialId)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//不需要签名的 直接返回
|
||||||
|
if (IsNeedClinicalDataSign(readingCategory, isbaseLine, criterionType, trialClinicalDataSetList) == false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
var isClinicalDataSign = false;
|
var isClinicalDataSign = false;
|
||||||
|
|
||||||
var needSignCount = 0;
|
var needSignCount = 0;
|
||||||
|
@ -383,6 +391,8 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return isClinicalDataSign;
|
return isClinicalDataSign;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1012,7 +1012,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
IsFrontTaskNeedSignButNotSign=u.IsFrontTaskNeedSignButNotSign
|
IsFrontTaskNeedSignButNotSign=u.IsFrontTaskNeedSignButNotSign
|
||||||
})
|
})
|
||||||
.ToList(),
|
.ToList(),
|
||||||
}).Where(x => x.UnReadTaskCount > 0).OrderBy(x => x.UnReadCanReadTaskCount);
|
}).Where(x => x.UnReadCanReadTaskCount > 0).OrderBy(x => x.UnReadCanReadTaskCount);
|
||||||
// 有序阅片需要找到最小需要
|
// 有序阅片需要找到最小需要
|
||||||
|
|
||||||
|
|
||||||
|
@ -1910,9 +1910,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
|
||||||
|
|
||||||
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == task.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == task.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
|
||||||
|
|
||||||
if (task.TaskState != TaskState.Effect || task.ReadingCategory != ReadingCategory.Visit || task.ReadingTaskState == ReadingTaskState.HaveSigned || task.TaskAllocationState == TaskAllocationState.NotAllocate)
|
if (task.TaskState != TaskState.Effect || task.ReadingCategory != ReadingCategory.Visit || task.ReadingTaskState == ReadingTaskState.HaveSigned )
|
||||||
{
|
{
|
||||||
return ResponseOutput.NotOk("仅仅允许针对已分配、生效、未完成的访视任务进行退回操作,请刷新页面数据");
|
return ResponseOutput.NotOk("仅仅允许针对生效、未完成的访视任务进行退回操作,请刷新页面数据");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
{
|
{
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
public string Name { get; set; } = string.Empty;
|
public string Name { get; set; } = string.Empty;
|
||||||
public string ValueCN { get; set; } = string.Empty;
|
|
||||||
public string Value { get; set; } = string.Empty;
|
public string Value { get; set; } = string.Empty;
|
||||||
public string Code { get; set; } = string.Empty;
|
public string Code { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ namespace IRaCIS.Core.Application.Services
|
||||||
public async Task<Dictionary<string, List<SystemBasicDataSelect>>> GetBasicDataSelect(string[] searchArray)
|
public async Task<Dictionary<string, List<SystemBasicDataSelect>>> GetBasicDataSelect(string[] searchArray)
|
||||||
{
|
{
|
||||||
|
|
||||||
var searchList = await _systemBasicDataRepository.Where(t => searchArray.Contains(t.Parent.Code) && t.ParentId != null).ProjectTo<SystemBasicDataSelect>(_mapper.ConfigurationProvider).ToListAsync();
|
var searchList = await _systemBasicDataRepository.Where(t => searchArray.Contains(t.Parent.Code) && t.ParentId != null).ProjectTo<SystemBasicDataSelect>(_mapper.ConfigurationProvider,new { _userInfo.IsEn_Us}).ToListAsync();
|
||||||
|
|
||||||
return searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.ToList());
|
return searchList.GroupBy(t => t.ParentCode).ToDictionary(g => g.Key, g => g.ToList());
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,10 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
CreateMap<SystemBasicData, SystemBasicDataView>();
|
CreateMap<SystemBasicData, SystemBasicDataView>();
|
||||||
|
|
||||||
|
var isEn_Us = false;
|
||||||
CreateMap<SystemBasicData, SystemBasicDataSelect>()
|
CreateMap<SystemBasicData, SystemBasicDataSelect>()
|
||||||
.ForMember(o => o.ParentCode, t => t.MapFrom(u => u.Parent.Code));
|
.ForMember(o => o.ParentCode, t => t.MapFrom(u => u.Parent.Code))
|
||||||
|
.ForMember(o => o.Value, t => t.MapFrom(u => isEn_Us? u.Value:u.ValueCN));
|
||||||
|
|
||||||
CreateMap<SystemBasicDataAddOrEdit, SystemBasicData>().ReverseMap();
|
CreateMap<SystemBasicDataAddOrEdit, SystemBasicData>().ReverseMap();
|
||||||
|
|
||||||
|
@ -40,7 +42,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
CreateMap<Dictionary, BasicDicSelect>()
|
CreateMap<Dictionary, BasicDicSelect>()
|
||||||
.ForMember(o => o.ParentChildCodeEnum, t => t.MapFrom(u => u.Parent.ChildCodeEnum))
|
.ForMember(o => o.ParentChildCodeEnum, t => t.MapFrom(u => u.Parent.ChildCodeEnum))
|
||||||
|
.ForMember(o => o.Value, t => t.MapFrom(u => u.MappedValue))
|
||||||
.ForMember(o => o.ParentCode, t => t.MapFrom(u => u.Parent.Code));
|
.ForMember(o => o.ParentCode, t => t.MapFrom(u => u.Parent.Code));
|
||||||
|
|
||||||
var token = "";
|
var token = "";
|
||||||
|
|
|
@ -887,8 +887,9 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
.WhereIf(challengeQuery.CreateUserId != null, t => t.CreateUserId == challengeQuery.CreateUserId)
|
.WhereIf(challengeQuery.CreateUserId != null, t => t.CreateUserId == challengeQuery.CreateUserId)
|
||||||
.WhereIf(challengeQuery.SubjectCode != null, t => t.SubjectVisit.Subject.Code.Contains(challengeQuery.SubjectCode!))
|
.WhereIf(challengeQuery.SubjectCode != null, t => t.SubjectVisit.Subject.Code.Contains(challengeQuery.SubjectCode!))
|
||||||
.WhereIf(challengeQuery.VisitPlanArray != null && challengeQuery.VisitPlanArray?.Length > 0, svExpression)
|
.WhereIf(challengeQuery.VisitPlanArray != null && challengeQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||||
//.WhereIf(!string.IsNullOrEmpty(challengeQuery.VisitPlanInfo), challengeQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(challengeQuery.VisitPlanInfo))
|
//.WhereIf(!string.IsNullOrEmpty(challengeQuery.VisitPlanInfo), challengeQuery.VisitPlanInfo.Contains('.') ? t => t.SubjectVisit.VisitNum.ToString().Contains(".") : t => t.SubjectVisit.VisitNum == decimal.Parse(challengeQuery.VisitPlanInfo))
|
||||||
.WhereIf(challengeQuery.IsOverTime != null, t => DateTime.Now > t.DeadlineTime)
|
.WhereIf(challengeQuery.IsOverTime != null && challengeQuery.IsOverTime == true, t => t.IsClosed ? t.ClosedTime > t.DeadlineTime : DateTime.Now > t.DeadlineTime)
|
||||||
|
.WhereIf(challengeQuery.IsOverTime != null && challengeQuery.IsOverTime == false, t => t.IsClosed ? t.ClosedTime < t.DeadlineTime : DateTime.Now < t.DeadlineTime)
|
||||||
.WhereIf(challengeQuery.IsUrgent != null, t => t.SubjectVisit.IsUrgent == challengeQuery.IsUrgent)
|
.WhereIf(challengeQuery.IsUrgent != null, t => t.SubjectVisit.IsUrgent == challengeQuery.IsUrgent)
|
||||||
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.SubjectVisit.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
.WhereIf(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CRA, t => t.SubjectVisit.TrialSite.CRCUserList.Any(t => t.UserId == _userInfo.Id))
|
||||||
.ProjectTo<QCCRCChallengeViewModel>(_mapper.ConfigurationProvider);
|
.ProjectTo<QCCRCChallengeViewModel>(_mapper.ConfigurationProvider);
|
||||||
|
|
|
@ -1078,10 +1078,6 @@ namespace IRaCIS.Core.Application.Image.QA
|
||||||
return ResponseOutput.NotOk($"在提交当前访视后,请尽快处理尚未提交的前序访视:{string.Join('、', nameList)}。", 0, ApiResponseCodeEnum.NeedTips);
|
return ResponseOutput.NotOk($"在提交当前访视后,请尽快处理尚未提交的前序访视:{string.Join('、', nameList)}。", 0, ApiResponseCodeEnum.NeedTips);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//同时要根据项目有没有配置Subject 级别临床数据
|
//同时要根据项目有没有配置Subject 级别临床数据
|
||||||
|
|
|
@ -123,7 +123,7 @@ namespace IRaCIS.Application.Services
|
||||||
ReadingClinicalDataId = entity.Id,
|
ReadingClinicalDataId = entity.Id,
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_mapper.Map(indto, entity);
|
_mapper.Map(indto, entity);
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
|
|
||||||
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
|
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
|
||||||
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject|| x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||||
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||||
.Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
.Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
||||||
.Select(x => new GetCRCClinicalDataOutDto()
|
.Select(x => new GetCRCClinicalDataOutDto()
|
||||||
|
@ -241,7 +241,7 @@ namespace IRaCIS.Application.Services
|
||||||
private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto)
|
private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto)
|
||||||
{
|
{
|
||||||
var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
|
var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
|
||||||
.WhereIf(inDto.IsBaseline, x=>x.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataLevel == ClinicalLevel.SubjectVisit )
|
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||||
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
|
||||||
.Select(x => x.Id).ToListAsync();
|
.Select(x => x.Id).ToListAsync();
|
||||||
|
|
||||||
|
@ -274,13 +274,13 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
public async Task<IResponseOutput> ReadClinicalDataSign(ReadingClinicalDataSignIndto inDto)
|
public async Task<IResponseOutput> ReadClinicalDataSign(ReadingClinicalDataSignIndto inDto)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
var data = await _readingClinicalDataRepository.FirstOrDefaultAsync(t => t.Id == inDto.ReadingClinicalDataId);
|
var data = await _readingClinicalDataRepository.FirstOrDefaultAsync(t => t.Id == inDto.ReadingClinicalDataId);
|
||||||
|
|
||||||
if (data.ReadingClinicalDataState != ReadingClinicalDataStatus.HaveChecked)
|
if (data.ReadingClinicalDataState != ReadingClinicalDataStatus.HaveChecked)
|
||||||
{
|
{
|
||||||
throw new BusinessValidationFailedException("当前临床数据状态不是已核查状态,不允许签名!");
|
throw new BusinessValidationFailedException("当前临床数据状态不是已核查状态,不允许签名!");
|
||||||
}
|
}
|
||||||
data.IsSign = true;
|
data.IsSign = true;
|
||||||
data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
|
data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
|
||||||
|
@ -345,7 +345,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -385,7 +385,8 @@ namespace IRaCIS.Application.Services
|
||||||
//维护 IsFrontTaskNeedSignButNotSign 在添加任务哪里用触发器也维护了
|
//维护 IsFrontTaskNeedSignButNotSign 在添加任务哪里用触发器也维护了
|
||||||
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
||||||
//小于自己任务号的任务 存在需要签名 但是没签名
|
//小于自己任务号的任务 存在需要签名 但是没签名
|
||||||
.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum && t.IsFrontTaskNeedSignButNotSign==false))
|
.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
||||||
|
&& t.IsFrontTaskNeedSignButNotSign == false )
|
||||||
.Select(t => t.Id);
|
.Select(t => t.Id);
|
||||||
|
|
||||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable.Contains(t.Id), u => new VisitTask()
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable.Contains(t.Id), u => new VisitTask()
|
||||||
|
@ -395,9 +396,10 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var visitTaskIdQueryable2= _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
||||||
//小于自己任务号的任务 存在需要签名 但是没签名
|
//小于自己任务号的任务 存在需要签名 但是没签名
|
||||||
.Where(t =>! t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum && t.IsFrontTaskNeedSignButNotSign == true))
|
.Where(t => !t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
||||||
|
&& t.IsFrontTaskNeedSignButNotSign == true )
|
||||||
.Select(t => t.Id);
|
.Select(t => t.Id);
|
||||||
|
|
||||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable2.Contains(t.Id), u => new VisitTask()
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable2.Contains(t.Id), u => new VisitTask()
|
||||||
|
@ -670,11 +672,11 @@ namespace IRaCIS.Application.Services
|
||||||
var criterionType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.CriterionType).FirstNotNullAsync();
|
var criterionType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == inDto.TrialReadingCriterionId).Select(x => x.CriterionType).FirstNotNullAsync();
|
||||||
|
|
||||||
|
|
||||||
var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId).Include(x => x.ClinicalDataTrialSet)
|
var resultQuery = _readingClinicalDataRepository.Where(x => x.SubjectId == inDto.SubjectId)
|
||||||
.Where(x => x.ReadingId == inDto.ReadingId || (x.SubjectId == inDto.SubjectId && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject))
|
.Where(x => x.ReadingId == inDto.ReadingId || (x.SubjectId == inDto.SubjectId && x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject))
|
||||||
//.WhereIf(inDto.UploadRole == UploadRole.CRC, x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
//.WhereIf(inDto.UploadRole == UploadRole.CRC, x => x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
|
||||||
|
|
||||||
.Where(x => x.ClinicalDataTrialSet.CriterionEnumListStr.Contains($"{((int)criterionType).ToString()}"))
|
.Where(x => x.ClinicalDataTrialSet.CriterionEnumListStr.Contains($"|{((int)criterionType).ToString()}|"))
|
||||||
.Select(x => new GetReadingClinicalDataListOutDto()
|
.Select(x => new GetReadingClinicalDataListOutDto()
|
||||||
{
|
{
|
||||||
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
ClinicalDataLevel = x.ClinicalDataTrialSet.ClinicalDataLevel,
|
||||||
|
|
|
@ -43,17 +43,21 @@ namespace IRaCIS.Core.Application.Triggers
|
||||||
|
|
||||||
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
||||||
//小于自己任务号的任务 存在需要签名 但是没签名
|
//小于自己任务号的任务 存在需要签名 但是没签名
|
||||||
.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum && t.IsFrontTaskNeedSignButNotSign == false))
|
.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
||||||
.Select(t => t.Id);
|
&& t.IsFrontTaskNeedSignButNotSign == false)
|
||||||
|
.Select(t => t.Id);
|
||||||
|
|
||||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable.Contains(t.Id), u => new VisitTask()
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable.Contains(t.Id), u => new VisitTask()
|
||||||
{
|
{
|
||||||
IsFrontTaskNeedSignButNotSign = true
|
IsFrontTaskNeedSignButNotSign = true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
|
||||||
//小于自己任务号的任务 存在需要签名 但是没签名
|
//小于自己任务号的任务 存在需要签名 但是没签名
|
||||||
.Where(t => !t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum && t.IsFrontTaskNeedSignButNotSign == true))
|
.Where(t => !t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
|
||||||
|
&& t.IsFrontTaskNeedSignButNotSign == true)
|
||||||
.Select(t => t.Id);
|
.Select(t => t.Id);
|
||||||
|
|
||||||
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable2.Contains(t.Id), u => new VisitTask()
|
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable2.Contains(t.Id), u => new VisitTask()
|
||||||
|
|
|
@ -214,26 +214,26 @@ update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
|
|
||||||
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=0
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=0
|
||||||
|
|
||||||
|
|
||||||
update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
|
update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
|
|
||||||
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=1
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=1
|
||||||
|
|
||||||
--非基线
|
--非基线
|
||||||
update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =0
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =0
|
||||||
|
|
||||||
|
|
||||||
update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
|
update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =1
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =1
|
||||||
|
|
||||||
--处理裁判
|
--处理裁判
|
||||||
|
|
||||||
|
@ -244,20 +244,20 @@ update VisitTask set IsNeedClinicalDataSign =0,IsClinicalDataSign=0 where Vis
|
||||||
update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
||||||
where VisitTask.ReadingCategory=5 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=3 and IsConfirm=1)
|
where VisitTask.ReadingCategory=5 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
|
||||||
|
|
||||||
--处理全局
|
--处理全局
|
||||||
|
|
||||||
update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
update VisitTask set IsNeedClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
||||||
where VisitTask.ReadingCategory=2 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=2 and IsConfirm=1)
|
where VisitTask.ReadingCategory=2 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
|
||||||
|
|
||||||
|
|
||||||
update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
|
update VisitTask set IsNeedClinicalDataSign =0 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
||||||
where VisitTask.ReadingCategory=2 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=2 and IsConfirm=1 ) and IsNeedClinicalDataSign=1
|
where VisitTask.ReadingCategory=2 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1 ) and IsNeedClinicalDataSign=1
|
||||||
|
|
||||||
|
|
||||||
-----处理 是否所有临床数据都签名的字段
|
-----处理 是否所有临床数据都签名的字段
|
||||||
|
@ -267,26 +267,55 @@ update VisitTask set IsClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
|
|
||||||
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1))
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1)
|
||||||
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ( ClinicalDataLevel=1)
|
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ( ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1 and UploadRole=1
|
||||||
)
|
)
|
||||||
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1
|
||||||
-- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署
|
-- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署
|
||||||
)
|
)
|
||||||
|
|
||||||
|
--处理基线脏数据
|
||||||
|
update VisitTask set IsClinicalDataSign =0 from VisitTask
|
||||||
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
|
|
||||||
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1)
|
||||||
|
and (
|
||||||
|
select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ( ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1 and UploadRole=1
|
||||||
|
)
|
||||||
|
!=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1
|
||||||
|
-- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--非基线
|
--非基线
|
||||||
update VisitTask set IsClinicalDataSign =1 from VisitTask
|
update VisitTask set IsClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=1)
|
|
||||||
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=1)
|
-- 非基线 可能只有CRC 访视级别 PM 没有
|
||||||
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1)
|
||||||
|
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1 and UploadRole=1 )
|
||||||
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
|
||||||
|
|
||||||
|
--维护错误数据
|
||||||
|
update VisitTask set IsClinicalDataSign =0 from VisitTask
|
||||||
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
|
inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
|
where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
|
|
||||||
|
-- 非基线 可能只有CRC 访视级别 PM 没有
|
||||||
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1)
|
||||||
|
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1 and UploadRole=1 )
|
||||||
|
!=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
|
||||||
|
|
||||||
|
|
||||||
--处理肿瘤学
|
--处理肿瘤学
|
||||||
|
@ -294,37 +323,39 @@ inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id
|
||||||
update VisitTask set IsClinicalDataSign =1 from VisitTask
|
update VisitTask set IsClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
||||||
where VisitTask.ReadingCategory=5
|
where VisitTask.ReadingCategory=5 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=3)
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
|
||||||
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=3)
|
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1)
|
||||||
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--处理全局
|
--处理全局
|
||||||
|
|
||||||
update VisitTask set IsClinicalDataSign =1 from VisitTask
|
update VisitTask set IsClinicalDataSign =1 from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
||||||
where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =1
|
where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=2)
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
|
||||||
|
|
||||||
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=2)
|
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
|
||||||
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1)
|
||||||
|
|
||||||
|
--维护脏数据
|
||||||
update VisitTask set IsClinicalDataSign =0 from VisitTask
|
update VisitTask set IsClinicalDataSign =0 from VisitTask
|
||||||
|
|
||||||
|
--select VisitTask.Id as VisitTaskId ,Trial.Id, Trial.ExperimentName, VisitTask.TaskName,ReadingQuestionCriterionTrial.CriterionName,Subject.Code ,VisitTask.IsNeedClinicalDataSign,VisitTask.IsClinicalDataSign ,VisitTask.DoctorUserId from VisitTask
|
||||||
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId
|
||||||
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
|
||||||
where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =1
|
inner join Subject on VisitTask.SubjectId=Subject.Id
|
||||||
and
|
inner join Trial on VisitTask.TrialId=Trial.Id
|
||||||
( not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=2)
|
where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1
|
||||||
|
and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1)
|
||||||
|
|
||||||
or (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and ClinicalDataLevel=2)
|
and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1 )
|
||||||
!=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
!=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id
|
||||||
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1)
|
where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1 and ClinicalDataLevel=2 )
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
--处理字段 IsFrontTaskNeedSignButNotSign
|
--处理字段 IsFrontTaskNeedSignButNotSign
|
||||||
|
@ -340,7 +371,50 @@ WHERE EXISTS (
|
||||||
FROM [VisitTask] AS [v1]
|
FROM [VisitTask] AS [v1]
|
||||||
WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum]
|
WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum]
|
||||||
|
|
||||||
) AND [v0].[Id] = [v].[Id] )
|
) and [v0].[IsFrontTaskNeedSignButNotSign]=0 AND [v0].[Id] = [v].[Id] )
|
||||||
|
|
||||||
|
|
||||||
|
UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =0
|
||||||
|
FROM [VisitTask] AS [v]
|
||||||
|
WHERE EXISTS (
|
||||||
|
|
||||||
|
SELECT 1
|
||||||
|
FROM [VisitTask] AS [v0]
|
||||||
|
where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and not EXISTS(
|
||||||
|
SELECT 1
|
||||||
|
FROM [VisitTask] AS [v1]
|
||||||
|
WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum]
|
||||||
|
|
||||||
|
) and [v0].[IsFrontTaskNeedSignButNotSign]=1 AND [v0].[Id] = [v].[Id] )
|
||||||
|
|
||||||
|
update ReadingClinicalData set IsVisit=1 from ReadingClinicalData INNER JOIN ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId = ClinicalDataTrialSet.Id where ClinicalDataTrialSet.ClinicalDataLevel in (0,1) and ReadingClinicalData.IsVisit=0
|
||||||
|
update VisitTask set IsClinicalDataSign=0 where IsNeedClinicalDataSign=0 and IsClinicalDataSign=1
|
||||||
|
|
||||||
|
-- 判断 访视 和阅片期 是否有脏数据吧
|
||||||
|
--查询确认
|
||||||
|
select V.SubjectId, V.SourceSubjectVisitId, V.TrialReadingCriterionId,V.IsSelfAnalysis, v.DoctorUserId,V.ArmEnum,Count(*) as EffectCount,max(v.CreateTime),max(v.Id) as Id from VisitTask V
|
||||||
|
join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id
|
||||||
|
where V.TaskState=0 and V.SourceSubjectVisitId is not null and ReadingQuestionCriterionTrial.ReadingType=2
|
||||||
|
GROUP BY V.TrialId, V.SubjectId, V.SourceSubjectVisitId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum ,v.DoctorUserId
|
||||||
|
HAVING Count(*)>1
|
||||||
|
|
||||||
|
--删除脏的多生成的任务
|
||||||
|
delete VisitTask where Id in (select max(v.Id) as Id from VisitTask V
|
||||||
|
join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id
|
||||||
|
where V.TaskState=0 and V.SourceSubjectVisitId is not null and ReadingQuestionCriterionTrial.ReadingType=2
|
||||||
|
GROUP BY V.TrialId, V.SubjectId, V.SourceSubjectVisitId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum ,v.DoctorUserId
|
||||||
|
HAVING Count(*)>1)
|
||||||
|
|
||||||
|
select V.TrialId, V.SubjectId, V.SouceReadModuleId, V.TrialReadingCriterionId,V.IsSelfAnalysis, V.ArmEnum,Count(*) as EffectCount,max(v.CreateTime),max(v.Id) as Id from VisitTask V
|
||||||
|
join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id
|
||||||
|
where V.TaskState=0 and V.SouceReadModuleId is not null and ReadingQuestionCriterionTrial.ReadingType=2
|
||||||
|
GROUP BY V.TrialId, V.SubjectId, V.SouceReadModuleId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum
|
||||||
|
HAVING Count(*)>2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
update ReadingClinicalData set IsVisit=1 from ReadingClinicalData INNER JOIN ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId = ClinicalDataTrialSet.Id where ClinicalDataTrialSet.ClinicalDataLevel in (0,1) and ReadingClinicalData.IsVisit=0
|
|
Loading…
Reference in New Issue