Uat_Study
he 2023-01-12 10:04:21 +08:00
commit fda332f424
3 changed files with 23 additions and 10 deletions

View File

@ -8450,7 +8450,7 @@
</member> </member>
<member name="M:IRaCIS.Application.Services.DoctorService.AddDoctorCriterionFile(IRaCIS.Application.Contracts.AddDoctorCriterionFileDto)"> <member name="M:IRaCIS.Application.Services.DoctorService.AddDoctorCriterionFile(IRaCIS.Application.Contracts.AddDoctorCriterionFileDto)">
<summary> <summary>
添加医生标准文件 添加修改医生标准文件
</summary> </summary>
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
@ -10143,7 +10143,7 @@
文件类型 文件类型
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Application.Contracts.CriterionReadingCategory.ToDoQuantity"> <member name="P:IRaCIS.Application.Contracts.CriterionReadingCategory.PendingCount">
<summary> <summary>
待办数量 待办数量
</summary> </summary>

View File

@ -286,6 +286,8 @@ namespace IRaCIS.Application.Services
var needSignCount = 0; var needSignCount = 0;
var haveSignedCount = _readingClinicalDataRepository.Where(t => t.TrialId==trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count(); var haveSignedCount = _readingClinicalDataRepository.Where(t => t.TrialId==trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count();
Expression<Func<VisitTask, bool>> visitTaskLambda = x => x.TrialId == trialId && x.SubjectId == subjectId && x.TrialReadingCriterionId == trialReadingCritrialId;
if (isVisit) if (isVisit)
{ {
var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync(); var isBaseLine = await _subjectVisitRepository.Where(t => t.Id == readingId).Select(t => t.IsBaseLine).FirstOrDefaultAsync();
@ -310,7 +312,7 @@ namespace IRaCIS.Application.Services
IsClinicalDataSign = true IsClinicalDataSign = true
}); });
Expression<Func<VisitTask, bool>> visitTaskLambda = x => x.TrialId == trialId && x.SubjectId == subjectId && x.TrialReadingCriterionId == trialReadingCritrialId;
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务 var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
@ -348,6 +350,15 @@ namespace IRaCIS.Application.Services
{ {
IsClinicalDataSign = true IsClinicalDataSign = true
}); });
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)).Select(t => t.Id);
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable.Contains(t.Id), u => new VisitTask()
{
IsFrontTaskNeedSignButNotSign = true
});
} }
} }

View File

@ -249,9 +249,12 @@ 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 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 (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'%' and (ClinicalDataLevel=0 or 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)
)
=(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需要签名的文档 此时应该设置为已签署
)
--线 --线
@ -293,16 +296,15 @@ inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id
-- IsFrontTaskNeedSignButNotSign -- IsFrontTaskNeedSignButNotSign
UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =1 UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =1
FROM [VisitTask] AS [v] FROM [VisitTask] AS [v]
WHERE EXISTS ( WHERE EXISTS (
SELECT 1 SELECT 1
FROM [VisitTask] AS [v0] FROM [VisitTask] AS [v0]
where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and EXISTS(
EXISTS(
SELECT 1 SELECT 1
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] AND [v0].[Id] = [v].[Id] 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] )