暂存修改

Uat_Study
hang 2023-07-27 09:38:41 +08:00
parent 93646d8f58
commit 2bde5d1309
3 changed files with 10 additions and 95 deletions

View File

@ -421,11 +421,11 @@ namespace IRaCIS.Core.Application.Service
.Where(t => t.TrialId == trialId && t.IsSign && t.ReadingClinicalDataState == ReadingClinicalDataStatus.HaveSigned && t.ReadingId == readingId && t.ClinicalDataTrialSet.UploadRole == UploadRole.PM).Count();
var readModule = _readModuleRepository.Where(t => t.Id == readingId).FirstOrDefault();
var readModule = _readModuleRepository.Where(t => t.Id == readingId).FirstOrDefault();
//CRC 阅片期自定义结构化录入是否签名
bool crcReadModuleSign = true;
//访视
if (readingCategory == ReadingCategory.Visit)
@ -466,7 +466,7 @@ namespace IRaCIS.Core.Application.Service
// 肿瘤学
else if (readingCategory == ReadingCategory.Oncology)
{
needSignCount= trialClinicalDataSetList.Where(t => t.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead && t.UploadRole == UploadRole.PM).Count();
needSignCount = trialClinicalDataSetList.Where(t => t.TrialClinicalDataSetCriteriaList.Any(c => c.TrialReadingCriterionId == trialReadingCriterionId) && t.ClinicalDataLevel == ClinicalLevel.OncologyRead && t.UploadRole == UploadRole.PM).Count();
if (readModule != null)
{
// 不存在需要CRC上传的临床数据 或者 PM已确认
@ -484,7 +484,7 @@ namespace IRaCIS.Core.Application.Service
}
//可能仅仅CRC 基线 没有PM
if (needSignCount == haveSignedCount && crcReadModuleSign )
if (needSignCount == haveSignedCount && crcReadModuleSign)
{
isClinicalDataSign = true;
@ -606,18 +606,12 @@ namespace IRaCIS.Core.Application.Service
var visitNumList = _subjectVisitRepository.Where(t => t.SubjectId == subjectGroup.SubjectId && t.IsLostVisit == false).OrderBy(t => t.VisitNum).Select(t => t.VisitNum).ToList();
foreach (var trialReadingCriterionConfig in trialReadingCriterionConfigList)
{
//var subjectCriteriaEvaluation = _subjectCriteriaEvaluationRepository.Where(t => t.TrialReadingCriterionId == trialReadingCriterionConfig.TrialReadingCriterionId && t.IsJoinEvaluation && t.SubjectId == subjectVisit.SubjectId).FirstOrDefault();
if (trialReadingCriterionConfig.IsAutoCreate == true /*|| (trialReadingCriterionConfig.IsAutoCreate == false && subjectCriteriaEvaluation != null && subjectCriteriaEvaluation?.IsJoinEvaluation == true)*/)
if (trialReadingCriterionConfig.IsAutoCreate == true)
{
//var assignConfigList = await _subjectUserRepository.Where(t => t.TrialId == trialId && t.TrialReadingCriterionId == trialReadingCriterionConfig.TrialReadingCriterionId && t.SubjectId == subjectVisit.SubjectId && t.OrignalSubjectUserId == null && t.IsConfirmed).Select(u => new { u.DoctorUserId, u.ArmEnum }).ToListAsync();
var blindTaskName = string.Empty;
@ -642,82 +636,7 @@ namespace IRaCIS.Core.Application.Service
}
//每个访视 根据项目配置生成任务 双审生成两个
//双重 可能有一个人的任务没分配,然后影像回退不会影响未分配的任务,所以生成的时候 要进行判断 不能每次都生成两个
if (trialReadingCriterionConfig.ReadingType == ReadingMethod.Double)
{
var existCurrentVisitTaskList = _visitTaskRepository.Where(t => t.TrialId == trialId && t.SubjectId == subjectVisit.SubjectId
&& t.TrialReadingCriterionId == trialReadingCriterionConfig.TrialReadingCriterionId && t.TaskState == TaskState.Effect
&& t.TaskAllocationState == TaskAllocationState.NotAllocate && t.DoctorUserId == null && t.SourceSubjectVisitId == subjectVisit.Id).ToList();
VisitTask? task1 = null;
VisitTask? task2 = null;
if (!existCurrentVisitTaskList.Any(t => t.ArmEnum == Arm.DoubleReadingArm1))
{
currentMaxCodeInt = currentMaxCodeInt + 1;
task1 = await _visitTaskRepository.AddAsync(new VisitTask()
{
TrialId = trialId,
SubjectId = subjectVisit.SubjectId,
TaskBlindName = blindTaskName,
IsUrgent = subjectVisit.IsUrgent,
TaskUrgentType = taskUrgentType,
IsCanEditUrgentState = isCanEditUrgentState,
TaskName = subjectVisit.VisitName,
VisitTaskNum = subjectVisit.VisitNum,
//CheckPassedTime = subjectVisit.CheckPassedTime,
ArmEnum = Arm.DoubleReadingArm1,//特殊
Code = currentMaxCodeInt,
SourceSubjectVisitId = subjectVisit.Id,
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt, nameof(VisitTask)),
ReadingCategory = ReadingCategory.Visit,
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
IsNeedClinicalDataSign = isNeedClinicalDataSign,
IsClinicalDataSign = isClinicalDataSign
});
}
if (!existCurrentVisitTaskList.Any(t => t.ArmEnum == Arm.DoubleReadingArm2))
{
currentMaxCodeInt = currentMaxCodeInt + 1;
task2 = await _visitTaskRepository.AddAsync(new VisitTask()
{
TrialId = trialId,
SubjectId = subjectVisit.SubjectId,
TaskBlindName = blindTaskName,
TaskName = subjectVisit.VisitName,
IsUrgent = subjectVisit.IsUrgent,
TaskUrgentType = taskUrgentType,
IsCanEditUrgentState = isCanEditUrgentState,
VisitTaskNum = subjectVisit.VisitNum,
//CheckPassedTime = subjectVisit.CheckPassedTime,
ArmEnum = Arm.DoubleReadingArm2,//特殊
Code = currentMaxCodeInt,
SourceSubjectVisitId = subjectVisit.Id,
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt, nameof(VisitTask)),
ReadingCategory = ReadingCategory.Visit,
TrialReadingCriterionId = trialReadingCriterionConfig.TrialReadingCriterionId,
IsNeedClinicalDataSign = isNeedClinicalDataSign,
IsClinicalDataSign = isClinicalDataSign
});
}
_provider.Set<int>($"{trialId}_{StaticData.CacheKey.TaskMaxCode}", currentMaxCodeInt, TimeSpan.FromMinutes(30));
}
if (trialReadingCriterionConfig.ReadingType == ReadingMethod.Single)
if (trialReadingCriterionConfig.ReadingType == ReadingMethod.Single)
{
@ -983,7 +902,7 @@ namespace IRaCIS.Core.Application.Service
case GenerateTaskCategory.Judge:
var firstTask = await _visitTaskRepository.Where(x => generateTaskCommand.JudgeVisitTaskIdList.Contains(x.Id)).FirstOrDefaultAsync();
VisitTask visitTask = new VisitTask()
{
@ -1084,7 +1003,7 @@ namespace IRaCIS.Core.Application.Service
foreach (var item in generateTaskCommand.ReadingGenerataTaskList)
{
item.VisitNum = await _readModuleRepository.Where(x => x.Id == item.ReadModuleId).Select(x => x.SubjectVisit.VisitNum).FirstOrDefaultAsync();
@ -1103,7 +1022,7 @@ namespace IRaCIS.Core.Application.Service
SouceReadModuleId = item.ReadModuleId,
TaskBlindName = item.ReadingName,
TaskCode = AppSettings.GetCodeStr(currentMaxCodeInt + 1, nameof(VisitTask)),
ReadingCategory = item.ReadingCategory,

View File

@ -1396,7 +1396,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
public async Task<IResponseOutput> PMSetTaskBack(Guid trialId, Guid taskId)
{
//var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.IsReadingTaskViewInOrder, t.ReadingType }).FirstOrDefaultAsync()).IfNullThrowException();
var task = (await _visitTaskRepository.Where(t => t.Id == taskId).FirstOrDefaultAsync()).IfNullThrowException();
@ -1429,7 +1428,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
return ResponseOutput.NotOk(_localizer["VisitTask_ConsistencyTaskCannotBeReturned"]);
}
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) /*&& t.TaskAllocationState == TaskAllocationState.Allocated*/;
Expression<Func<VisitTask, bool>> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze);
if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment)

View File

@ -26,9 +26,6 @@ namespace IRaCIS.Core.Application.Triggers
public SubjectVisitCheckPassedTrigger(IRepository<Subject> subjectRepository,
IRepository<ClinicalDataTrialSet> clinicalDataTrialSetRepository,
IRepository<ReadingClinicalData> readingClinicalDataRepository,