diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
index b0a275fb5..93ad59670 100644
--- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
+++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs
@@ -786,7 +786,7 @@ namespace IRaCIS.Core.API.Controllers
}
///
- /// New 项目入组 获取医生简历
+ /// New 项目入组 勾选获取简历路径
///
///
///
@@ -812,7 +812,7 @@ namespace IRaCIS.Core.API.Controllers
}
///
- /// new 医生详情 下载指定简历
+ /// new 医生详情 勾选或者下载文件路径
///
///
///
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 5198124a0..23a29e1ea 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -293,7 +293,7 @@
- New 项目入组 获取医生简历
+ New 项目入组 勾选获取简历路径
@@ -302,7 +302,7 @@
- new 医生详情 下载指定简历
+ new 医生详情 勾选或者下载文件路径
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 34f73ac12..1809aa067 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1947,6 +1947,13 @@
+
+
+ 获取上一次FDGPET 评估
+
+
+
+
FDG-PET总体评估结果
diff --git a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
index cd1501d3f..b1b3b5f63 100644
--- a/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
+++ b/IRaCIS.Core.Application/Service/Allocation/VisitTaskService.cs
@@ -21,6 +21,7 @@ using System.Linq;
using DocumentFormat.OpenXml.Bibliography;
using Org.BouncyCastle.Crypto;
using IRaCIS.Core.Domain.Share.Reading;
+using MassTransit;
namespace IRaCIS.Core.Application.Service.Allocation
{
@@ -1082,11 +1083,11 @@ namespace IRaCIS.Core.Application.Service.Allocation
var visitQuery = _visitTaskRepository.Where(x => x.TrialId == inDto.TrialId && x.DoctorUserId == _userInfo.Id
&& x.TaskState == TaskState.Effect /*&& x.TrialReadingCriterionId== inDto.TrialReadingCriterionId*/)
- //前序 不存在 未生成任务的访视
- .WhereIf(critrion.IsAutoCreate == false, t => !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum) )
+ //前序 不存在 未生成任务的访视
+ .WhereIf(critrion.IsAutoCreate == false, t => !t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(f => f.IsGeneratedTask == false && t.VisitTaskNum > f.SubjectVisit.VisitNum))
// 前序 不存在 未一致性核查未通过的
- .Where( t=>! t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum))
+ .Where(t => !t.Subject.SubjectVisitList.Any(sv => sv.CheckState != CheckStateEnum.CVPassed && t.VisitTaskNum > sv.VisitNum))
//.WhereIf(critrion.IsAutoCreate == false, t => t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId).Any(t => t.IsGeneratedTask == false) ?
//t.VisitTaskNum <= t.Subject.SubjectCriteriaEvaluationVisitFilterList.Where(t => t.TrialReadingCriterionId == trialReadingCriterionId && t.IsGeneratedTask == false).Min(t => t.SubjectVisit.VisitNum) : true)
//.Where(t => t.Subject.SubjectVisitList.Any(t => t.CheckState != CheckStateEnum.CVPassed) ? t.VisitTaskNum <= t.Subject.SubjectVisitList.Where(t => t.CheckState != CheckStateEnum.CVPassed).Min(t => t.VisitNum) : true)
@@ -1416,7 +1417,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
//添加申请记录
var visitTaskReReading = await _visitTaskReReadingRepository.AddAsync(new VisitTaskReReading()
{
- TrialId=applyReReadingCommand.TrialId,
+ TrialId = applyReReadingCommand.TrialId,
RootReReadingTaskId = rootReReadingTaskId == Guid.Empty ? task.Id : rootReReadingTaskId,
OriginalReReadingTaskId = task.Id,
RequestReReadingTime = DateTime.Now,
@@ -1550,7 +1551,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
//1.1 有附加评估,会影响其他标准的任务
if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment)
{
- // PM申请 SPM / CPM审批
+ // PM申请 SPM / CPM审批
if (visitTaskReReadingAppply.RequestReReadingType == RequestReReadingType.TrialGroupApply && (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SPM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.CPM))
{
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == origenalTask.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
@@ -1976,29 +1977,9 @@ namespace IRaCIS.Core.Application.Service.Allocation
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{
- var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+ CopyForms(newTask, origenalTask);
- foreach (var item in list)
- {
- item.Id = Guid.Empty;
- item.VisitTaskId = newTask.Id;
- }
-
- _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result;
}
- //else if (origenalTask.ReadingCategory == ReadingCategory.Global)
- //{
- // var list = _repository.Where(t => t.GlobalTaskId == origenalTask.Id).ToList();
-
- // foreach (var item in list)
- // {
- // item.Id = Guid.Empty;
- // item.GlobalTaskId = newTask.Id;
- // }
-
- // _ = _repository.AddRangeAsync(list).Result;
- //}
-
}
@@ -2007,28 +1988,10 @@ namespace IRaCIS.Core.Application.Service.Allocation
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{
- var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
-
- foreach (var item in list)
- {
- item.Id = Guid.Empty;
- item.VisitTaskId = newTask.Id;
- }
-
- _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result;
+ CopyForms(newTask, origenalTask);
}
- //else if (origenalTask.ReadingCategory == ReadingCategory.Global)
- //{
- // var list = _repository.Where(t => t.GlobalTaskId == origenalTask.Id).ToList();
- // foreach (var item in list)
- // {
- // item.Id = Guid.Empty;
- // item.GlobalTaskId = newTask.Id;
- // }
- // _ = _repository.AddRangeAsync(list).Result;
- //}
}
}
@@ -2124,15 +2087,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{
- var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+ CopyForms(newTask, origenalTask);
- foreach (var item in list)
- {
- item.Id = Guid.Empty;
- item.VisitTaskId = newTask.Id;
- }
-
- _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result;
}
}
@@ -2142,15 +2098,8 @@ namespace IRaCIS.Core.Application.Service.Allocation
{
if (origenalTask.ReadingCategory == ReadingCategory.Visit)
{
- var list = _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+ CopyForms(newTask, origenalTask);
- foreach (var item in list)
- {
- item.Id = Guid.Empty;
- item.VisitTaskId = newTask.Id;
- }
-
- _ = _readingTaskQuestionAnswerRepository.AddRangeAsync(list).Result;
}
}
@@ -2209,6 +2158,74 @@ namespace IRaCIS.Core.Application.Service.Allocation
return ResponseOutput.Ok();
}
+ private void CopyForms(VisitTask newTask, VisitTask origenalTask)
+ {
+
+ //自定义
+ var readingCustomTagList = _repository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+
+ foreach (var item in readingCustomTagList)
+ {
+ item.Id = Guid.Empty;
+ item.VisitTaskId = newTask.Id;
+ }
+
+ _ = _repository.AddRangeAsync(readingCustomTagList).Result;
+
+
+ var readingTaskQuestionMarkList = _repository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+
+ foreach (var item in readingTaskQuestionMarkList)
+ {
+ item.Id = Guid.Empty;
+ item.VisitTaskId = newTask.Id;
+ }
+
+ _ = _repository.AddRangeAsync(readingTaskQuestionMarkList).Result;
+
+ var readingTaskQuestionAnswerList = _repository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+
+ foreach (var item in readingTaskQuestionAnswerList)
+ {
+ item.Id = Guid.Empty;
+ item.VisitTaskId = newTask.Id;
+ }
+ _ = _repository.AddRangeAsync(readingTaskQuestionAnswerList).Result;
+
+
+
+ //ReadingTableAnswerRowInfo ReadingTableQuestionAnswer 一起加
+ var readingTableAnswerRowInfoList = _repository.Where(t => t.VisitTaskId == origenalTask.Id).Include(t => t.LesionAnswerList).ToList();
+
+ foreach (var item in readingTableAnswerRowInfoList)
+ {
+ item.Id = NewId.NextSequentialGuid();
+ item.VisitTaskId = newTask.Id;
+
+ foreach (var item2 in item.LesionAnswerList)
+ {
+ item2.Id = Guid.Empty;
+ item2.RowId = item.Id;
+ item2.VisitTaskId = newTask.Id;
+ }
+ }
+
+ _ = _repository.AddRangeAsync(readingTableAnswerRowInfoList).Result;
+
+
+ //var readingTableQuestionAnswerList = _repository.Where(t => t.VisitTaskId == origenalTask.Id).ToList();
+
+ //foreach (var item in readingTableQuestionAnswerList)
+ //{
+ // item.Id = Guid.Empty;
+ // item.VisitTaskId = newTask.Id;
+ //}
+
+ //_ = _repository.AddRangeAsync(readingTableQuestionAnswerList).Result;
+
+
+ }
+
///
/// PM 设置任务 退回
@@ -2256,7 +2273,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
Expression> filterExpression = t => t.TrialId == trialId && t.SubjectId == task.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
-
+
if (criterionConfig.CriterionType == CriterionType.RECIST1Point1 && criterionConfig.IsAdditionalAssessment)
{
//影像退回,必定影响两个标准的任务
@@ -2590,8 +2607,6 @@ namespace IRaCIS.Core.Application.Service.Allocation
var filterObj = (await _visitTaskRepository.FirstOrDefaultNoTrackingAsync(t => t.Id == taskId)).IfNullThrowException();
var trialId = filterObj.TrialId;
- //var trialConfig = (await _trialRepository.Where(t => t.Id == trialId).Select(t => new { TrialId = t.Id, t.IsReadingTaskViewInOrder, t.ReadingType }).FirstOrDefaultAsync()).IfNullThrowException();
-
var criterionConfig = (await _trialReadingCriterionRepository.Where(x => x.Id == filterObj.TrialReadingCriterionId).Select(x => new { x.ReadingTool, x.CriterionType, x.IsAdditionalAssessment, x.IsReadingTaskViewInOrder }).FirstOrDefaultAsync()).IfNullThrowException();
Expression> filterExpression = t => t.TrialId == trialId && t.SubjectId == filterObj.SubjectId && (t.TaskState == TaskState.Effect || t.TaskState == TaskState.Freeze) && t.TaskAllocationState == TaskAllocationState.Allocated;
@@ -2613,10 +2628,10 @@ namespace IRaCIS.Core.Application.Service.Allocation
{
// 1.1 基线任务影响BM任务
- if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && _subjectVisitRepository.Any(t=>t.Id==filterObj.SourceSubjectVisitId && t.IsBaseLine==true))
+ if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager && _subjectVisitRepository.Any(t => t.Id == filterObj.SourceSubjectVisitId && t.IsBaseLine == true))
{
- isIR1Point1AdditionalAssessmentBaseline=true;
+ isIR1Point1AdditionalAssessmentBaseline = true;
//filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
@@ -2632,7 +2647,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
else
{
filterExpression = filterExpression.And(t => t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId || t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB);
-
+
}
}
else
@@ -2655,10 +2670,10 @@ namespace IRaCIS.Core.Application.Service.Allocation
|| (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer && applyId == null))
{
- //当前任务及其之后的所有访视任务、全局任务、裁判任务、肿瘤学阅片任务
+ //当前任务及其之后的所有访视任务、全局任务、裁判任务、肿瘤学阅片任务
- //有序
- if (criterionConfig.IsReadingTaskViewInOrder)
+ //有序
+ if (criterionConfig.IsReadingTaskViewInOrder)
{
switch (filterObj.ReadingCategory)
@@ -2682,7 +2697,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
)) || t.Id == filterObj.Id)
;
}
- // IR 申请1.1 基线重阅,影响附加评估所有的任务
+ // IR 申请1.1 基线重阅,影响附加评估所有的任务
else if (isIR1Point1AdditionalAssessmentBaseline)
{
filterExpression = filterExpression.And(t => t.VisitTaskNum >= filterObj.VisitTaskNum &&
@@ -2691,7 +2706,7 @@ namespace IRaCIS.Core.Application.Service.Allocation
// 裁判 肿瘤学是另外的医生做
|| t.ReadingCategory == ReadingCategory.Judge
|| t.ReadingCategory == ReadingCategory.Oncology
- )&& t.TrialReadingCriterionId==filterObj.TrialReadingCriterionId )||( t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB))
+ ) && t.TrialReadingCriterionId == filterObj.TrialReadingCriterionId) || (t.TrialReadingCriterion.CriterionType == CriterionType.RECIST1Pointt1_MB))
);
}
else
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
index ab1beb6eb..a2ff95f1e 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/DTO/UnionStudyViewDodel.cs
@@ -197,8 +197,6 @@ namespace IRaCIS.Core.Application.Contracts
public bool IsDicomReUpload { get; set; }
-
-
public int FileCount { get; set; }
}
@@ -312,6 +310,8 @@ namespace IRaCIS.Core.Application.Contracts
public string WindowWidth { get; set; }
public bool Anonymize { get; set; }
- public string Path { get; set; }
+ public string Path { get; set; } = string.Empty;
+
+ public string HtmlPath { get; set; } = string.Empty;
}
}
diff --git a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
index 7e52257fb..98b33fd25 100644
--- a/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
+++ b/IRaCIS.Core.Application/Service/Third-partyProject/UltrasonicDicomService.cs
@@ -217,6 +217,8 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
[FromServices] IRepository _dicomSeriesRepository,
[FromServices] IRepository _dicomInstanceRepository)
{
+
+
try
{
var trialId = incommand.TrialId;
@@ -398,10 +400,6 @@ namespace IRaCIS.Core.Application.Service.Third_partyProject
-
-
-
-
return ResponseOutput.Ok();
}
diff --git a/IRaCIS.Core.Domain/Image/DicomInstance.cs b/IRaCIS.Core.Domain/Image/DicomInstance.cs
index bce1777cf..0299bd657 100644
--- a/IRaCIS.Core.Domain/Image/DicomInstance.cs
+++ b/IRaCIS.Core.Domain/Image/DicomInstance.cs
@@ -53,6 +53,7 @@ namespace IRaCIS.Core.Domain.Models
public Guid UpdateUserId { get; set; }
public DateTime UpdateTime { get; set; } = DateTime.Now;
+ public string HtmlPath { get; set; }=string.Empty;
}
}