修改提交接口

Uat_Study
hang 2023-03-21 16:01:39 +08:00
parent 2842791af4
commit afe5f1e58f
11 changed files with 200 additions and 53 deletions

View File

@ -9259,7 +9259,7 @@
</member> </member>
<member name="T:IRaCIS.Core.Application.Triggers.VisitTaskIsFrontTaskNeedSignButNotSignTrigger"> <member name="T:IRaCIS.Core.Application.Triggers.VisitTaskIsFrontTaskNeedSignButNotSignTrigger">
<summary> <summary>
因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
</summary> </summary>
</member> </member>
<member name="M:IRaCIS.Core.Application.MediatR.Handlers.AnonymizeCacheHandler.#ctor(IRaCIS.Core.Infra.EFCore.IRepository,EasyCaching.Core.IEasyCachingProvider)"> <member name="M:IRaCIS.Core.Application.MediatR.Handlers.AnonymizeCacheHandler.#ctor(IRaCIS.Core.Infra.EFCore.IRepository,EasyCaching.Core.IEasyCachingProvider)">

View File

@ -412,6 +412,8 @@ namespace IRaCIS.Core.Application.Service.Common
/// <summary> /// <summary>
/// 阅片期信息表 /// 阅片期信息表
/// </summary> /// </summary>

View File

@ -32,7 +32,10 @@ namespace IRaCIS.Core.Application.ViewModel
public string TrialSiteCode { get; set; } public string TrialSiteCode { get; set; }
public SubjectStatus SubjectStatus { get; set; } public SubjectStatus SubjectStatus { get; set; }
public List<EvaluationInfo> EvaluationList { get; set; } public List<EvaluationInfo> FinalEvaluationList { get; set; }
public List<EvaluationInfo> ReadingEvaluationList { get; set; }
} }

View File

@ -65,11 +65,15 @@ namespace IRaCIS.Core.Application.Service
var resultTrialReadingCriterionId = Guid.Empty; var resultTrialReadingCriterionId = Guid.Empty;
var curentCriterionType = CriterionType.NoCriterion;
//BM 需要找基线 两个人做的结果 //BM 需要找基线 两个人做的结果
if (trialReadingCritionList.First(t => t.Id == inQuery.TrialReadingCriterionId).CriterionType == CriterionType.RECIST1Pointt1_MB) if (trialReadingCritionList.First(t => t.Id == inQuery.TrialReadingCriterionId).CriterionType == CriterionType.RECIST1Pointt1_MB)
{ {
resultTrialReadingCriterionId = trialReadingCritionList.First(t => t.CriterionType == CriterionType.RECIST1Point1).Id; resultTrialReadingCriterionId = trialReadingCritionList.First(t => t.CriterionType == CriterionType.RECIST1Point1).Id;
curentCriterionType = CriterionType.RECIST1Pointt1_MB;
} }
@ -96,16 +100,43 @@ namespace IRaCIS.Core.Application.Service
IsJoinEvaluation = subjectCriteriaEvaluation.IsJoinEvaluation, IsJoinEvaluation = subjectCriteriaEvaluation.IsJoinEvaluation,
EvaluationList=subject.SubjectAdditionalEvaluationResult.Where(t=>t.IsFinalResult && t.TrialReadingCriterionId==resultTrialReadingCriterionId).Select(u=>new EvaluationInfo()
{ Answer=u.Answer,FinalTranslateDictionaryCode=u.FinalTranslateDictionaryCode,QuestioName=u.TrialReadingQuestion .QuestionName,QuestioNameEn=u.TrialReadingQuestion.QuestionEnName}).ToList() ReadingEvaluationList= subject.ReadingTaskQuestionAnswerList
.Where(t=>t.ReadingQuestionCriterionTrialId == resultTrialReadingCriterionId && t.ReadingQuestionTrial.IsAdditional==true && t.ReadingQuestionTrial.Type!="group" && t.VisitTask.SourceSubjectVisit.IsBaseLine)
.Select(u=>new EvaluationInfo()
{
Answer=u.Answer,
QuestioName=u.ReadingQuestionTrial.QuestionName,
QuestioNameEn=u.ReadingQuestionTrial.QuestionEnName,
FinalTranslateDictionaryCode=u.ReadingQuestionTrial.DictionaryCode
}).ToList()
//EvaluationList=subject
//.SubjectAdditionalEvaluationResult
//.Where(t=>t.IsFinalResult && t.TrialReadingCriterionId==resultTrialReadingCriterionId)
//.Select(u=>new EvaluationInfo()
//{ Answer=u.Answer,FinalTranslateDictionaryCode=u.FinalTranslateDictionaryCode,QuestioName=u.TrialReadingQuestion .QuestionName,QuestioNameEn=u.TrialReadingQuestion.QuestionEnName}).ToList()
}; };
var pageList = await subjectCriteriaEvaluationQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc); var pageList = await subjectCriteriaEvaluationQueryable.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, inQuery.SortField == string.Empty ? nameof(SubjectCriteriaEvaluationView.SubjectCode) : inQuery.SortField, inQuery.Asc);
switch (curentCriterionType)
{
case CriterionType.RECIST1Pointt1_MB:
break;
default:
break;
}
return pageList; return pageList;
} }

View File

@ -254,6 +254,8 @@ namespace IRaCIS.Core.Application.Service
// .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.subject.Code)) // .ForMember(d => d.SubjectCode, u => u.MapFrom(s => s.subject.Code))
// .ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.subject.Status)); // .ForMember(d => d.SubjectStatus, u => u.MapFrom(s => s.subject.Status));
CreateMap<SubjectCriteriaEvaluationAddOrEdit, SubjectCriteriaEvaluation>().ReverseMap();
CreateMap<SubjectCriteriaEvaluation, SubjectCriteriaEvaluationView>().ReverseMap(); CreateMap<SubjectCriteriaEvaluation, SubjectCriteriaEvaluationView>().ReverseMap();
CreateMap<SubjectCriteriaEvaluationVisitFilter, SubjectCriteriaEvaluationVisitFilterAddOrEdit>().ReverseMap(); CreateMap<SubjectCriteriaEvaluationVisitFilter, SubjectCriteriaEvaluationVisitFilterAddOrEdit>().ReverseMap();

View File

@ -10,21 +10,34 @@ using System.Linq.Expressions;
namespace IRaCIS.Core.Application.Triggers namespace IRaCIS.Core.Application.Triggers
{ {
/// <summary> /// <summary>
/// 因为可能先一致性核查通过,生成其他标准的任务了,新签名的标准也需要产生任务 /// 维护 IsFrontTaskNeedSignButNotSign 字段 另外附加评估结果
/// </summary> /// </summary>
public class VisitTaskIsFrontTaskNeedSignButNotSignTrigger : IAfterSaveTrigger<VisitTask> public class VisitTaskIsFrontTaskNeedSignButNotSignTrigger : IAfterSaveTrigger<VisitTask>
{ {
private readonly IRepository<VisitTask> _visitTaskRepository; private readonly IRepository<VisitTask> _visitTaskRepository;
private readonly IRepository<ReadingQuestionCriterionTrial> _trialReadingCriterionRepository;
private readonly IRepository<ReadingQuestionTrial> _trialReadingQuestionRepository;
private readonly IRepository<ReadingTaskQuestionAnswer> _readingTaskQuestionAnswerRepository;
private readonly IRepository<SubjectAdditionalEvaluationResult> _subjectAdditionalEvaluationResultRepository;
public VisitTaskIsFrontTaskNeedSignButNotSignTrigger( public VisitTaskIsFrontTaskNeedSignButNotSignTrigger(
IRepository<VisitTask> visitTaskRepository) IRepository<VisitTask> visitTaskRepository, IRepository<ReadingQuestionCriterionTrial> trialReadingCriterionRepository, IRepository<ReadingQuestionTrial> trialReadingQuestionRepository
, IRepository<ReadingTaskQuestionAnswer> readingTaskQuestionAnswerRepository, IRepository<SubjectAdditionalEvaluationResult> subjectAdditionalEvaluationResultRepository)
{ {
_trialReadingCriterionRepository = trialReadingCriterionRepository;
_visitTaskRepository = visitTaskRepository; _visitTaskRepository = visitTaskRepository;
_trialReadingQuestionRepository = trialReadingQuestionRepository;
_readingTaskQuestionAnswerRepository = readingTaskQuestionAnswerRepository;
_subjectAdditionalEvaluationResultRepository = subjectAdditionalEvaluationResultRepository;
} }
@ -38,7 +51,7 @@ namespace IRaCIS.Core.Application.Triggers
if (context.ChangeType == ChangeType.Added) if (context.ChangeType == ChangeType.Added)
{ {
if (visitTask.IsNeedClinicalDataSign ) if (visitTask.IsNeedClinicalDataSign)
{ {
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务 var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
@ -67,6 +80,110 @@ namespace IRaCIS.Core.Application.Triggers
} }
} }
#region 附加评估 暂时废弃
// //从未签名状态 改为签名状态时 判断是否进行了附加评估,将附加评估的结果冗余
// if (context.ChangeType == ChangeType.Modified && visitTask.ReadingTaskState == ReadingTaskState.HaveSigned && context.UnmodifiedEntity.ReadingTaskState != ReadingTaskState.HaveSigned)
// {
// var criterion = _trialReadingCriterionRepository.Where(t => t.Id == visitTask.TrialReadingCriterionId).FirstOrDefault();
// //如果是附加评估
// if (criterion.IsAdditionalAssessment)
// {
// if (visitTask.ReadingCategory == ReadingCategory.Visit)
// {
// switch (criterion.CriterionType)
// {
// case CriterionType.RECIST1Point1:
// var isbaseLine = _visitTaskRepository.Where(t => t.Id == visitTask.Id).Select(t => t.SourceSubjectVisit.IsBaseLine).FirstOrDefault();
// if (isbaseLine)
// {
// var currentTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == visitTask.Id &&
// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group"
// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync();
// //双重阅片完成了
// if (criterion.ReadingType == ReadingMethod.Double &&
//(_visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned).Count() == 2)
// )
// {
// var otherTaskId = await _visitTaskRepository.Where(t => t.SubjectId == visitTask.SubjectId && t.TaskName == visitTask.TaskName && t.TaskState == TaskState.Effect && t.ReadingTaskState == ReadingTaskState.HaveSigned && t.Id != visitTask.Id)
// .Select(t => t.Id).FirstOrDefaultAsync();
// var otherTaskAdditionarlAnswer = await _readingTaskQuestionAnswerRepository.Where(t => t.VisitTaskId == otherTaskId &&
// t.ReadingQuestionTrial.IsAdditional == true && t.ReadingQuestionTrial.Type != "group"
// ).Include(t => t.ReadingQuestionTrial).FirstOrDefaultAsync();
// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult()
// {
// TrialReadingCriterionId = visitTask.TrialReadingCriterionId,
// IsFinalResult = true,
// SubjectId = visitTask.SubjectId,
// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId,
// FinalAnswer = currentTaskAdditionarlAnswer.Answer,
// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode,
// });
// }
// if (criterion.ReadingType == ReadingMethod.Single)
// {
// await _subjectAdditionalEvaluationResultRepository.AddAsync(new SubjectAdditionalEvaluationResult()
// {
// TrialReadingCriterionId = visitTask.TrialReadingCriterionId,
// IsFinalResult = true,
// SubjectId = visitTask.SubjectId,
// TrialReadingQuestionId = currentTaskAdditionarlAnswer.ReadingQuestionTrialId,
// FinalAnswer = currentTaskAdditionarlAnswer.Answer,
// FinalTranslateDictionaryCode = currentTaskAdditionarlAnswer.ReadingQuestionTrial.DictionaryCode,
// });
// }
// }
// break;
// default:
// break;
// }
// }
// }
// }
#endregion
} }

View File

@ -63,16 +63,20 @@ namespace IRaCIS.Core.Domain.Models
public DateTime UpdateTime { get; set; } public DateTime UpdateTime { get; set; }
[JsonIgnore]
public List<SubjectCriteriaEvaluationVisitFilter> SubjectCriteriaEvaluationVisitFilterList { get; set; } public List<SubjectCriteriaEvaluationVisitFilter> SubjectCriteriaEvaluationVisitFilterList { get; set; }
///// <summary>
// /// 是否影像筛选
// /// </summary>
//[Required]
//public bool IsImageFiltering { get; set; } ///// <summary>
// /// 是否影像筛选
} // /// </summary>
//[Required]
//public bool IsImageFiltering { get; set; }
}
} }

View File

@ -58,22 +58,28 @@ namespace IRaCIS.Core.Domain.Models
} }
/// <summary>
/// 影像确认结果
/// </summary>
public enum ImageDeterminationResultState public enum ImageDeterminationResultState
{ {
//待定 //待定
None = 0, None = 0,
//通过 //通过
Passed = 1, Passed = 1,
} }
/// <summary>
/// 影像筛选状态
/// </summary>
public enum ImageFilterState public enum ImageFilterState
{ {
//默认值 待筛选 //默认值 待筛选
None = 0, None = 0,
//已完成 //筛选已完成
Finished = 1 Finished = 1
} }

View File

@ -18,49 +18,25 @@ namespace IRaCIS.Core.Domain.Models
public class TrialCriterionAdditionalAssessmentType : Entity, IAuditUpdate, IAuditAdd public class TrialCriterionAdditionalAssessmentType : Entity, IAuditUpdate, IAuditAdd
{ {
/// <summary>
/// TrialReadingCriterionId
/// </summary>
[Required]
public Guid TrialReadingCriterionId { get; set; } public Guid TrialReadingCriterionId { get; set; }
/// <summary>
/// CriterionType
/// </summary>
public CriterionType CriterionType { get; set; } public CriterionType CriterionType { get; set; }
public AdditionalAssessmentType AdditionalAssessmentType { get; set; } public AdditionalAssessmentType AdditionalAssessmentType { get; set; }
/// <summary>
/// IsSelected
/// </summary>
public bool? IsSelected { get; set; } public bool? IsSelected { get; set; }
/// <summary>
/// CreateTime
/// </summary>
[Required]
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary>
/// CreateUserId
/// </summary>
[Required]
public Guid CreateUserId { get; set; } public Guid CreateUserId { get; set; }
/// <summary>
/// UpdateTime
/// </summary>
[Required]
public DateTime UpdateTime { get; set; } public DateTime UpdateTime { get; set; }
/// <summary>
/// UpdateUserId
/// </summary>
[Required]
public Guid UpdateUserId { get; set; } public Guid UpdateUserId { get; set; }

View File

@ -74,7 +74,9 @@ namespace IRaCIS.Core.Domain.Models
public ReadingQuestionTrial ReadingQuestionTrial { get; set; } public ReadingQuestionTrial ReadingQuestionTrial { get; set; }
}
}

View File

@ -31,7 +31,11 @@ namespace IRaCIS.Core.Domain.Models
[JsonIgnore] [JsonIgnore]
public List <SubjectAdditionalEvaluationResult> SubjectAdditionalEvaluationResult { get; set; } public List<SubjectAdditionalEvaluationResult> SubjectAdditionalEvaluationResult { get; set; }
[JsonIgnore]
public List<ReadingTaskQuestionAnswer> ReadingTaskQuestionAnswerList { get; set; }
[JsonIgnore] [JsonIgnore]
[ForeignKey("FinalSubjectVisitId")] [ForeignKey("FinalSubjectVisitId")]