diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
index b637b9a56..9741b8644 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.csproj
@@ -107,8 +107,4 @@
-
-
-
-
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index eaea5299b..dcc53f8e9 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -8109,12 +8109,6 @@
-
-
- 完成阅片修改状态
-
-
-
添加阅片期任务
@@ -8127,6 +8121,12 @@
+
+
+ 添加裁判任务
+
+
+
触发裁判任务(新)
@@ -8141,12 +8141,6 @@
-
-
- 添加裁判任务
-
-
-
验证任务是否签名
@@ -8155,6 +8149,12 @@
+
+
+ 完成阅片修改状态
+
+
+
阅片期配置
diff --git a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
index 262c4158d..1d97f78fc 100644
--- a/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Reading/ReadingImageTaskService.cs
@@ -2052,7 +2052,7 @@ namespace IRaCIS.Application.Services
#endregion
- #region 提交问题
+ #region 阅片任务 提交填写表单
///
/// 验证访视提交
@@ -2420,37 +2420,14 @@ namespace IRaCIS.Application.Services
await _visitTaskRepository.SaveChangesAsync();
}
+
+
#endregion
- ///
- /// 完成阅片修改状态
- ///
- ///
- private async Task FinishReadUpdateState(Guid visitTaskId)
- {
- //var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
- //if (!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.ReadingTaskState != ReadingTaskState.HaveSigned))
- //{
- // if (taskInfo.SouceReadModuleId != null)
- // {
- // await _readModuleRepository.UpdatePartialFromQueryAsync(taskInfo.SouceReadModuleId.Value, x => new ReadModule
- // {
- // ReadingStatus = ReadingStatusEnum.ReadCompleted
- // });
- // }
- // else if (taskInfo.SourceSubjectVisitId != null)
- // {
- // await _subjectVisitRepository.UpdatePartialFromQueryAsync(taskInfo.SourceSubjectVisitId.Value, x => new SubjectVisit
- // {
- // ReadingStatus = ReadingStatusEnum.ReadCompleted
- // });
- // }
- // await _subjectVisitRepository.SaveChangesAsync();
- //}
- }
+ #region 阅片期 -全局和肿瘤学任务的生成
///
/// 添加阅片期任务
@@ -2477,39 +2454,39 @@ namespace IRaCIS.Application.Services
switch (taskInfo.ReadingCategory)
{
case ReadingCategory.Visit:
- needReadList = await _readModuleRepository.Where(x => x.SubjectVisitId == taskInfo.SourceSubjectVisitId&&x.ReadingSetType==ReadingSetType.ImageReading)
- .Select(x => new ReadingGenerataTaskDTO
- {
- IsUrgent = x.IsUrgent ?? false,
- SubjectId = x.SubjectId,
- VisitNum=x.VisitNum,
- ReadingName = x.ModuleName,
- ReadModuleId = x.Id,
- ReadingCategory = typeChangeDic[x.ModuleType],
- }).ToListAsync();
- if (needReadList.Any(x => x.ReadingCategory == ReadingCategory.Global))
- {
- needReadList = needReadList.Where(x => x.ReadingCategory != ReadingCategory.Oncology).ToList();
- }
+ needReadList = await _readModuleRepository.Where(x => x.SubjectVisitId == taskInfo.SourceSubjectVisitId && x.ReadingSetType == ReadingSetType.ImageReading)
+ .Select(x => new ReadingGenerataTaskDTO
+ {
+ IsUrgent = x.IsUrgent ?? false,
+ SubjectId = x.SubjectId,
+ VisitNum = x.VisitNum,
+ ReadingName = x.ModuleName,
+ ReadModuleId = x.Id,
+ ReadingCategory = typeChangeDic[x.ModuleType],
+ }).ToListAsync();
+ if (needReadList.Any(x => x.ReadingCategory == ReadingCategory.Global))
+ {
+ needReadList = needReadList.Where(x => x.ReadingCategory != ReadingCategory.Oncology).ToList();
+ }
//needReadList = needReadList.Where(x => _visitTaskRepository.Where(y => y.SouceReadModuleId == x.ReadModuleId).Count() == 0).ToList();
await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
{
- OriginalVisitId= visitTaskId,
+ OriginalVisitId = visitTaskId,
ReadingCategory = GenerateTaskCategory.Global,
TrialId = taskInfo.TrialId,
ReadingGenerataTaskList = needReadList
- }) ;
+ });
break;
- // 肿瘤学
+ // 肿瘤学
case ReadingCategory.Global:
var subjectVisitId = await _readModuleRepository.Where(x => x.Id == taskInfo.SouceReadModuleId).Select(x => x.SubjectVisitId).FirstOrDefaultAsync();
- var oncologyReadId= await _readModuleRepository.Where(x => x.SubjectVisitId == subjectVisitId && x.ModuleType == ModuleTypeEnum.Oncology).Select(x => x.Id).FirstOrDefaultAsync();
+ var oncologyReadId = await _readModuleRepository.Where(x => x.SubjectVisitId == subjectVisitId && x.ModuleType == ModuleTypeEnum.Oncology).Select(x => x.Id).FirstOrDefaultAsync();
await AddOncologyTask(oncologyReadId);
break;
}
}
-
+
@@ -2529,7 +2506,7 @@ namespace IRaCIS.Application.Services
var readModuleInfo = await _readModuleRepository.Where(x => x.Id == oncologModuleId && x.ModuleType == ModuleTypeEnum.Oncology).FirstOrDefaultAsync();
-
+
// 如果当前是肿瘤学
if (readModuleInfo != null)
@@ -2544,17 +2521,17 @@ namespace IRaCIS.Application.Services
&& x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.JudgeVisitTaskId).FirstOrDefaultAsync();
// 获取系统配置
- var readingType = await _readingQuestionCriterionTrialRepository.Where(x=>x.Id== readModuleInfo.TrialReadingCriterionId).Select(x=>x.ReadingType).FirstOrDefaultAsync();
+ var readingType = await _readingQuestionCriterionTrialRepository.Where(x => x.Id == readModuleInfo.TrialReadingCriterionId).Select(x => x.ReadingType).FirstOrDefaultAsync();
// 判断阅片是否完成
if (judgeVisitTaskId == null && (await _visitTaskRepository.Where(x => x.SouceReadModuleId == globalreadModuleId && x.TaskState == TaskState.Effect && x.ReadingCategory == ReadingCategory.Global
- && x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate&&x.TrialReadingCriterionId== readModuleInfo.TrialReadingCriterionId
+ && x.ReadingTaskState == ReadingTaskState.HaveSigned && !x.IsAnalysisCreate && x.TrialReadingCriterionId == readModuleInfo.TrialReadingCriterionId
).CountAsync() == (int)readingType))
{
finishReading = true;
}
- else if(judgeVisitTaskId!=null&& (await _visitTaskRepository.AnyAsync(x=>x.Id== judgeVisitTaskId.Value&&x.ReadingTaskState== ReadingTaskState.HaveSigned)))
+ else if (judgeVisitTaskId != null && (await _visitTaskRepository.AnyAsync(x => x.Id == judgeVisitTaskId.Value && x.ReadingTaskState == ReadingTaskState.HaveSigned)))
{
finishReading = true;
}
@@ -2596,11 +2573,38 @@ namespace IRaCIS.Application.Services
}
}
-
+
}
}
+ #endregion
+
+
+
+ #region 阅片任务 -裁判任务的生成和触发
+
+
+
+
+
+ ///
+ /// 添加裁判任务
+ ///
+ ///
+ private async Task SaveJudgeTask(SaveJudgeTaskDto inDto)
+ {
+ var trialId = await _visitTaskRepository.Where(x => inDto.VisitTaskIds.Contains(x.Id)).Select(x => x.TrialId).FirstOrDefaultAsync();
+
+ await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
+ {
+ JudgeVisitTaskIdList = inDto.VisitTaskIds,
+ ReadingCategory = GenerateTaskCategory.Judge,
+ TrialId = trialId
+ });
+ }
+
+
///
/// 触发裁判任务(新)
@@ -2610,23 +2614,23 @@ namespace IRaCIS.Application.Services
private async Task TriggerJudgeQuestion(Guid visitTaskId)
{
List visitTaskids = new List();
-
+
var visitTask = await _visitTaskRepository.Where(x => x.Id == visitTaskId).AsNoTracking().FirstNotNullAsync();
// 判断是否是一致性核查产生
if (visitTask.IsAnalysisCreate)
{
- visitTaskids=await _visitTaskRepository.Where(x=>x.ArmEnum== visitTask.ArmEnum&&x.TaskState==TaskState.Effect&&x.SourceSubjectVisitId== visitTask.SourceSubjectVisitId
- &&x.SouceReadModuleId==visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync();
-
+ visitTaskids = await _visitTaskRepository.Where(x => x.ArmEnum == visitTask.ArmEnum && x.TaskState == TaskState.Effect && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId
+ && x.SouceReadModuleId == visitTask.SouceReadModuleId && x.ReadingCategory != ReadingCategory.Judge && x.ReadingTaskState == ReadingTaskState.HaveSigned).Select(x => x.Id).ToListAsync();
+
}
else
{
// 这里是非一致性分析产生的
- visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge
- && x.TaskState== TaskState.Effect
- && x.IsAnalysisCreate==false
- && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync();
+ visitTaskids = await _visitTaskRepository.Where(x => x.ReadingTaskState == ReadingTaskState.HaveSigned && x.ReadingCategory != ReadingCategory.Judge
+ && x.TaskState == TaskState.Effect
+ && x.IsAnalysisCreate == false
+ && x.SourceSubjectVisitId == visitTask.SourceSubjectVisitId && x.SouceReadModuleId == visitTask.SouceReadModuleId).Select(x => x.Id).ToListAsync();
}
@@ -2728,7 +2732,7 @@ namespace IRaCIS.Application.Services
else
{
// 这里判断一致性分析产生的全局阅片
- if (visitTask.ReadingCategory == ReadingCategory.Global && visitTask.IsAnalysisCreate&&(visitTask.IsSelfAnalysis??false))
+ if (visitTask.ReadingCategory == ReadingCategory.Global && visitTask.IsAnalysisCreate && (visitTask.IsSelfAnalysis ?? false))
{
var taskOneInfo = await this.GetGlobalReadingInfo(new GetGlobalReadingInfoInDto()
{
@@ -2743,12 +2747,13 @@ namespace IRaCIS.Application.Services
{
noteEqual = true;
}
- else {
+ else
+ {
var query = from questionAnswet in _readingTaskQuestionAnswerRepository.Where(x =>
- x.VisitTask.IsAnalysisCreate==false&&
- x.VisitTask.DoctorUserId==visitTask.DoctorUserId&&
- x.VisitTask.TaskState== TaskState.Effect&&
- (x.VisitTask.SourceSubjectVisitId??default(Guid))== lastTask.VisitId)
+ x.VisitTask.IsAnalysisCreate == false &&
+ x.VisitTask.DoctorUserId == visitTask.DoctorUserId &&
+ x.VisitTask.TaskState == TaskState.Effect &&
+ (x.VisitTask.SourceSubjectVisitId ?? default(Guid)) == lastTask.VisitId)
join question in _readingQuestionTrialRepository.Where(x => x.IsJudgeQuestion) on new { ReadingQuestionTrialId = questionAnswet.ReadingQuestionTrialId } equals new { ReadingQuestionTrialId = question.Id }
select new GlobalQuestionInfo()
{
@@ -2760,7 +2765,7 @@ namespace IRaCIS.Application.Services
};
- var visitTaskQuestions =await query.ToListAsync();
+ var visitTaskQuestions = await query.ToListAsync();
var newlist = visitTaskQuestions.Where(x => x.QuestionId != null).ToList().Union(
lastTask.AfterQuestionList.Where(x => x.QuestionId != null).ToList()
@@ -2777,14 +2782,14 @@ namespace IRaCIS.Application.Services
noteEqual = noteEqual || ComputeJudgeResult(globalGroupTasks);
}
-
+
}
}
}
-
+
if (noteEqual)
@@ -2827,7 +2832,7 @@ namespace IRaCIS.Application.Services
}
-
+
///
/// 计算返回的结果 为True表示不相等
@@ -2892,23 +2897,10 @@ namespace IRaCIS.Application.Services
return noteEqual;
}
- ///
- /// 添加裁判任务
- ///
- ///
- private async Task SaveJudgeTask(SaveJudgeTaskDto inDto)
- {
- var trialId = await _visitTaskRepository.Where(x => inDto.VisitTaskIds.Contains(x.Id)).Select(x => x.TrialId).FirstOrDefaultAsync();
+ #endregion
- await _visitTaskHelpeService.AddTaskAsync(new GenerateTaskCommand()
- {
- JudgeVisitTaskIdList= inDto.VisitTaskIds,
- ReadingCategory= GenerateTaskCategory.Judge,
- TrialId= trialId
- });
- }
- #region 验证
+ #region 阅片任务 签名验证
///
/// 验证任务是否签名
@@ -2926,5 +2918,39 @@ namespace IRaCIS.Application.Services
}
#endregion
+
+
+ #region 废弃
+
+
+ ///
+ /// 完成阅片修改状态
+ ///
+ ///
+ private async Task FinishReadUpdateState(Guid visitTaskId)
+ {
+ //var taskInfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
+ //if (!await _visitTaskRepository.AnyAsync(x => x.SourceSubjectVisitId == taskInfo.SourceSubjectVisitId && x.SouceReadModuleId == taskInfo.SouceReadModuleId && x.ReadingTaskState != ReadingTaskState.HaveSigned))
+ //{
+ // if (taskInfo.SouceReadModuleId != null)
+ // {
+ // await _readModuleRepository.UpdatePartialFromQueryAsync(taskInfo.SouceReadModuleId.Value, x => new ReadModule
+ // {
+ // ReadingStatus = ReadingStatusEnum.ReadCompleted
+ // });
+ // }
+ // else if (taskInfo.SourceSubjectVisitId != null)
+ // {
+ // await _subjectVisitRepository.UpdatePartialFromQueryAsync(taskInfo.SourceSubjectVisitId.Value, x => new SubjectVisit
+ // {
+ // ReadingStatus = ReadingStatusEnum.ReadCompleted
+ // });
+ // }
+ // await _subjectVisitRepository.SaveChangesAsync();
+ //}
+ }
+
+ #endregion
+
}
}