修改查询
							parent
							
								
									0d49e56efd
								
							
						
					
					
						commit
						59b6be751f
					
				| 
						 | 
				
			
			@ -6095,6 +6095,139 @@
 | 
			
		|||
            是否是系统数据
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.ReadingCategory">
 | 
			
		||||
            <summary>
 | 
			
		||||
            任务类型
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.AllocateTime">
 | 
			
		||||
            <summary>
 | 
			
		||||
            分配时间
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.TaskUrgentType">
 | 
			
		||||
            <summary>
 | 
			
		||||
            加急类型
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.TaskUrgentRemake">
 | 
			
		||||
            <summary>
 | 
			
		||||
            任务加急类型
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsCanEditUrgentState">
 | 
			
		||||
            <summary>
 | 
			
		||||
            是否和编辑加急状态
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.ArmEnum">
 | 
			
		||||
            <summary>
 | 
			
		||||
            0 代表 单重阅片 产生的任务    否则就是双重  任务 1 任务  2 
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.TaskAllocationState">
 | 
			
		||||
            <summary>
 | 
			
		||||
            分配状态
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.ReReadingApplyState">
 | 
			
		||||
            <summary>
 | 
			
		||||
            重阅状态
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsReReadingCreate">
 | 
			
		||||
            <summary>
 | 
			
		||||
            是否是重阅产生的,方便过滤数据
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsPMSetBack">
 | 
			
		||||
            <summary>
 | 
			
		||||
            PM  对该任务进行了回退  影响的任务不设置
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.JudgeResultTaskId">
 | 
			
		||||
            <summary> 裁判结果的任务ID </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.FirstReadingTime">
 | 
			
		||||
            <summary>
 | 
			
		||||
            首次阅片时间
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsGlobalHaveUpdate">
 | 
			
		||||
            <summary>
 | 
			
		||||
            全局是否有更新
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsReadClinicalData">
 | 
			
		||||
            <summary>
 | 
			
		||||
            IR是否阅读临床数据
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.RelatedVisitTaskIds">
 | 
			
		||||
            <summary>
 | 
			
		||||
            关联的访视任务ID (当前任务是访视任务的话会有自己)
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.RelatedVisitTaskIdList">
 | 
			
		||||
            <summary>
 | 
			
		||||
            关联的访视任务ID (当前任务是访视任务的话会有自己)集合
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.PastResultTaskIds">
 | 
			
		||||
            <summary>
 | 
			
		||||
            既往任务Id  不包括自己
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.PastResultTaskIdList">
 | 
			
		||||
            <summary>
 | 
			
		||||
            既往任务Id  不包括自己集合
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.JudgeResultRemark">
 | 
			
		||||
            <summary>
 | 
			
		||||
            裁判结果的备注
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.JudgeResultImagePath">
 | 
			
		||||
            <summary>
 | 
			
		||||
            裁判结果的图片路径
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsAnalysisDiffToOriginalData">
 | 
			
		||||
            <summary>
 | 
			
		||||
            阅片结果是否和原数据有差异
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsGroupDiffArm1">
 | 
			
		||||
            <summary>
 | 
			
		||||
            组件一致性和原Arm1是否有差异
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsGroupDiffArm2">
 | 
			
		||||
            <summary>
 | 
			
		||||
            组件一致性和原Arm2是否有差异
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.IsAnalysisCreate">
 | 
			
		||||
            <summary>
 | 
			
		||||
            是否是一致性分析产生
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.BeforeConvertedTaskId">
 | 
			
		||||
            <summary>
 | 
			
		||||
            转换之前的任务Id(转化的任务才有该值)
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.ConsistentAnalysisOriginalTaskId">
 | 
			
		||||
            <summary>
 | 
			
		||||
            针对产生的一致性任务而言,这个字段存储的是原始任务
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.VisitTaskDto.JudgeResultImagePathList">
 | 
			
		||||
            <summary>
 | 
			
		||||
            裁判结果图片地址
 | 
			
		||||
            </summary>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="T:IRaCIS.Core.Application.Service.ReadingMedicalReviewService">
 | 
			
		||||
            <summary>
 | 
			
		||||
            阅片医学审核
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,22 +119,22 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
 | 
			
		||||
            var taskInfo = await _visitTaskRepository.Where(x => x.Id == taskId).IgnoreAutoIncludes().AsNoTracking().FirstNotNullAsync();
 | 
			
		||||
            taskInfo.ReadingTaskState = ReadingTaskState.Reading;
 | 
			
		||||
            taskInfo.IsConvertedTask = true;
 | 
			
		||||
            //taskInfo.IsConvertedTask = true;
 | 
			
		||||
            taskInfo.BeforeConvertedTaskId = taskId;
 | 
			
		||||
            taskInfo.Id = NewId.NextGuid();
 | 
			
		||||
 | 
			
		||||
            await _visitTaskRepository.BatchUpdateNoTrackingAsync(x =>
 | 
			
		||||
                x.IsAnalysisCreate == taskInfo.IsAnalysisCreate
 | 
			
		||||
               && x.IsSelfAnalysis == taskInfo.IsSelfAnalysis
 | 
			
		||||
               && x.VisitTaskNum > taskInfo.VisitTaskNum
 | 
			
		||||
               && x.DoctorUserId == taskInfo.DoctorUserId
 | 
			
		||||
               && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
 | 
			
		||||
               && x.SubjectId == taskInfo.SubjectId
 | 
			
		||||
                && x.ArmEnum == taskInfo.ArmEnum &&
 | 
			
		||||
                x.TaskState == TaskState.Effect, x => new VisitTask()
 | 
			
		||||
                {
 | 
			
		||||
                    IsConvertedTask = true
 | 
			
		||||
                });
 | 
			
		||||
            //await _visitTaskRepository.BatchUpdateNoTrackingAsync(x =>
 | 
			
		||||
            //    x.IsAnalysisCreate == taskInfo.IsAnalysisCreate
 | 
			
		||||
            //   && x.IsSelfAnalysis == taskInfo.IsSelfAnalysis
 | 
			
		||||
            //   && x.VisitTaskNum > taskInfo.VisitTaskNum
 | 
			
		||||
            //   && x.DoctorUserId == taskInfo.DoctorUserId
 | 
			
		||||
            //   && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
 | 
			
		||||
            //   && x.SubjectId == taskInfo.SubjectId
 | 
			
		||||
            //    && x.ArmEnum == taskInfo.ArmEnum &&
 | 
			
		||||
            //    x.TaskState == TaskState.Effect, x => new VisitTask()
 | 
			
		||||
            //    {
 | 
			
		||||
            //        IsConvertedTask = true
 | 
			
		||||
            //    });
 | 
			
		||||
 | 
			
		||||
            await _visitTaskRepository.AddAsync(taskInfo);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1636,7 +1636,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
                            var task1 = await _visitTaskRepository.AddAsync(new VisitTask()
 | 
			
		||||
                            {
 | 
			
		||||
                                TrialId = trialId,
 | 
			
		||||
                                IsConvertedTask = originalTaskInfo.IsConvertedTask,
 | 
			
		||||
                                //IsConvertedTask = originalTaskInfo.IsConvertedTask,
 | 
			
		||||
                                SubjectId = item.SubjectId,
 | 
			
		||||
                                IsUrgent = originalTaskInfo.IsUrgent,
 | 
			
		||||
                                VisitTaskNum = item.VisitNum + ReadingCommon.TaskNumDic[ReadingCategory.Global],
 | 
			
		||||
| 
						 | 
				
			
			@ -1688,7 +1688,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
                            SubjectId = item.SubjectId,
 | 
			
		||||
                            IsUrgent = originalTaskInfo.IsUrgent,
 | 
			
		||||
                            TaskName = item.ReadingName,
 | 
			
		||||
                            IsConvertedTask = originalTaskInfo.IsConvertedTask,
 | 
			
		||||
                            //IsConvertedTask = originalTaskInfo.IsConvertedTask,
 | 
			
		||||
                            // 原任务是全局任务  加0.03 就好
 | 
			
		||||
                            VisitTaskNum = originalTaskInfo.VisitTaskNum + 0.03m,
 | 
			
		||||
                            ArmEnum = Arm.TumorArm, //特殊
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,322 @@
 | 
			
		|||
using IRaCIS.Core.Domain.Share;
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Application.Service.Reading.Dto
 | 
			
		||||
{
 | 
			
		||||
    public class VisitTaskDto
 | 
			
		||||
    {
 | 
			
		||||
        public Guid Id { get; set; }
 | 
			
		||||
        public string TaskName { get; set; } = string.Empty;
 | 
			
		||||
        public string TaskBlindName { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //任务来源访视Id  方便回更访视读片状态
 | 
			
		||||
        public Guid? SourceSubjectVisitId { get; set; }
 | 
			
		||||
        public Guid? SouceReadModuleId { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 任务类型
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public ReadingCategory ReadingCategory { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public Guid CreateUserId { get; set; }
 | 
			
		||||
        public DateTime CreateTime { get; set; }
 | 
			
		||||
        public DateTime UpdateTime { get; set; }
 | 
			
		||||
        public Guid UpdateUserId { get; set; }
 | 
			
		||||
        public Guid TrialId { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 分配时间
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public DateTime? AllocateTime { get; set; }
 | 
			
		||||
 | 
			
		||||
        public Guid SubjectId { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public int Code { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string TaskCode { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        public bool IsUrgent { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 加急类型
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public TaskUrgentType? TaskUrgentType { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 任务加急类型
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string TaskUrgentRemake { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 是否和编辑加急状态
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool IsCanEditUrgentState { get; set; } = true;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 0 代表 单重阅片 产生的任务    否则就是双重  任务 1 任务  2 
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        [Required]
 | 
			
		||||
        public Arm ArmEnum { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 分配状态
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public TaskAllocationState TaskAllocationState { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public TaskState TaskState { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 重阅状态
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public ReReadingApplyState ReReadingApplyState { get; set; }
 | 
			
		||||
 | 
			
		||||
        public Guid? DoctorUserId { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public Guid TrialReadingCriterionId { get; set; }
 | 
			
		||||
 | 
			
		||||
        //裁判任务的Id
 | 
			
		||||
        public Guid? JudgeVisitTaskId { get; set; }
 | 
			
		||||
 | 
			
		||||
        //任务阅片状态
 | 
			
		||||
        public ReadingTaskState ReadingTaskState { get; set; }
 | 
			
		||||
 | 
			
		||||
        //签名时间
 | 
			
		||||
        public DateTime? SignTime { get; set; }
 | 
			
		||||
 | 
			
		||||
        public DateTime? SuggesteFinishedTime { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 是否是重阅产生的,方便过滤数据
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool IsReReadingCreate { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// PM  对该任务进行了回退  影响的任务不设置
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool IsPMSetBack { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary> 裁判结果的任务ID </summary>
 | 
			
		||||
        public Guid? JudgeResultTaskId { get; set; }
 | 
			
		||||
 | 
			
		||||
        //随访任务号   取访视的号  计划外是 访视+0.1   裁判任务在访视任务上+0.002   全局任务在截止访视号上+0.03   肿瘤待定   
 | 
			
		||||
        public decimal VisitTaskNum { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 首次阅片时间
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public DateTime? FirstReadingTime { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 全局是否有更新
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool? IsGlobalHaveUpdate { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// IR是否阅读临床数据
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool IsReadClinicalData { get; set; } = false;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 关联的访视任务ID (当前任务是访视任务的话会有自己)
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string RelatedVisitTaskIds { get; set; } = "[]";
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 关联的访视任务ID (当前任务是访视任务的话会有自己)集合
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        [NotMapped]
 | 
			
		||||
        public List<Guid> RelatedVisitTaskIdList
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    return JsonConvert.DeserializeObject<List<Guid>>(this.RelatedVisitTaskIds);
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    return new List<Guid>();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 既往任务Id  不包括自己
 | 
			
		||||
        /// </summary>
 | 
			
		||||
 | 
			
		||||
        public string PastResultTaskIds { get; set; } = "[]";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 既往任务Id  不包括自己集合
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        [NotMapped]
 | 
			
		||||
        public List<Guid> PastResultTaskIdList
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    return JsonConvert.DeserializeObject<List<Guid>>(this.PastResultTaskIds);
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    return new List<Guid>();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        #region 裁判任务特有
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 裁判结果的备注
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string JudgeResultRemark { get; set; } = string.Empty;
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 裁判结果的图片路径
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public string JudgeResultImagePath { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #region  一致性分析的任务特有数据
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 阅片结果是否和原数据有差异
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool? IsAnalysisDiffToOriginalData { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 组件一致性和原Arm1是否有差异
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool? IsGroupDiffArm1 { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 组件一致性和原Arm2是否有差异
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool? IsGroupDiffArm2 { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 是否是一致性分析产生
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool IsAnalysisCreate { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 转换之前的任务Id(转化的任务才有该值)
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public Guid? BeforeConvertedTaskId { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // [Projectable]
 | 
			
		||||
 | 
			
		||||
         public bool IsConvertedTask { get; set; }
 | 
			
		||||
 | 
			
		||||
        [NotMapped]
 | 
			
		||||
        public List<CrterionDictionaryGroup> CrterionDictionaryGroup
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                //try
 | 
			
		||||
                //{
 | 
			
		||||
                //    if (this.IsConvertedTask)
 | 
			
		||||
                //    {
 | 
			
		||||
                //        return new List<CrterionDictionaryGroup>() { Share.CrterionDictionaryGroup.General, Share.CrterionDictionaryGroup.Converted };
 | 
			
		||||
                //    }
 | 
			
		||||
                //    else
 | 
			
		||||
                //    {
 | 
			
		||||
                //        return new List<CrterionDictionaryGroup>() { Share.CrterionDictionaryGroup.General, Share.CrterionDictionaryGroup.BeforeConvert };
 | 
			
		||||
                //    }
 | 
			
		||||
                //}
 | 
			
		||||
                //catch (Exception)
 | 
			
		||||
                //{
 | 
			
		||||
 | 
			
		||||
                return new List<CrterionDictionaryGroup>();
 | 
			
		||||
                //}
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public bool? IsSelfAnalysis { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string BlindSubjectCode { get; set; } = string.Empty;
 | 
			
		||||
        public string BlindTrialSiteCode { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        //一致性分析规则Id  用于最后统计
 | 
			
		||||
        //public Guid? TaskConsistentRuleId { get; set; }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 针对产生的一致性任务而言,这个字段存储的是原始任务
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public Guid? ConsistentAnalysisOriginalTaskId { get; set; }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //临床数据
 | 
			
		||||
 | 
			
		||||
        public bool IsNeedClinicalDataSign { get; set; }
 | 
			
		||||
 | 
			
		||||
        public bool IsClinicalDataSign { get; set; }
 | 
			
		||||
 | 
			
		||||
        //前序任务需要签名 但是未签名
 | 
			
		||||
        public bool IsFrontTaskNeedSignButNotSign { get; set; }
 | 
			
		||||
 | 
			
		||||
     
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 裁判结果图片地址
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        [NotMapped]
 | 
			
		||||
        public List<string> JudgeResultImagePathList
 | 
			
		||||
        {
 | 
			
		||||
            get
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    return this.JudgeResultImagePath.Trim().Split(',').ToList();
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception)
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
                    return new List<string>();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -640,7 +640,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            {
 | 
			
		||||
                answers = await _readingTaskQuestionAnswerRepository.Where(x => x.VisitTaskId == visitTaskId).ToListAsync();
 | 
			
		||||
 | 
			
		||||
                var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
 | 
			
		||||
                var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
 | 
			
		||||
                questions.ForEach(x =>
 | 
			
		||||
                {
 | 
			
		||||
                    x.CrterionDictionaryGroup = taskinfo.CrterionDictionaryGroup;
 | 
			
		||||
| 
						 | 
				
			
			@ -726,7 +726,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                .ToListAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).FirstNotNullAsync();
 | 
			
		||||
            var taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
            if (taskInfo.IsConvertedTask &&taskInfo.BeforeConvertedTaskId!=null)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -865,10 +865,10 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                isEn_Us = _userInfo.IsEn_Us
 | 
			
		||||
 | 
			
		||||
            }).OrderBy(x => x.ShowOrder).ToListAsync();
 | 
			
		||||
            var taskInfo = new VisitTask();
 | 
			
		||||
            var taskInfo = new VisitTaskDto();
 | 
			
		||||
            if (inDto.TaskId != null)
 | 
			
		||||
            {
 | 
			
		||||
                taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TaskId).FirstNotNullAsync();
 | 
			
		||||
                taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
                qusetionList.ForEach(x =>
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -945,7 +945,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
            if (inDto.TaskId != null)
 | 
			
		||||
            {
 | 
			
		||||
                taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TaskId).FirstNotNullAsync();
 | 
			
		||||
                taskInfo = await _visitTaskRepository.Where(x => x.Id == inDto.TaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
 | 
			
		||||
                // 取基线
 | 
			
		||||
                var baseLineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskInfo.SubjectId && x.IsBaseLine).Select(x => x.Id).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -978,17 +978,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
                lastTaskTableAnswer= await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == laskTaskId).Include(x => x.ReadingTableQuestionTrial).ToListAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                if (taskInfo.IsConvertedTask &&
 | 
			
		||||
                     !(await _visitTaskRepository.AnyAsync(x => x.IsAnalysisCreate == taskInfo.IsAnalysisCreate
 | 
			
		||||
                    && x.IsSelfAnalysis == taskInfo.IsSelfAnalysis
 | 
			
		||||
                    && x.VisitTaskNum < taskInfo.VisitTaskNum
 | 
			
		||||
                    && x.DoctorUserId == taskInfo.DoctorUserId
 | 
			
		||||
                    && x.TrialReadingCriterionId == taskInfo.TrialReadingCriterionId
 | 
			
		||||
                    && !x.IsConvertedTask
 | 
			
		||||
                    && x.SubjectId == taskInfo.SubjectId
 | 
			
		||||
                    && x.ArmEnum == taskInfo.ArmEnum &&
 | 
			
		||||
                     x.TaskState == TaskState.Effect))
 | 
			
		||||
                     )
 | 
			
		||||
                if (taskInfo.BeforeConvertedTaskId!=null )
 | 
			
		||||
                {
 | 
			
		||||
                    isFirstChangeTask = true;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2248,7 +2238,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            });
 | 
			
		||||
            await _visitTaskRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
            var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == task.VisitTaskId).FirstNotNullAsync();
 | 
			
		||||
            var visitTaskInfo = await _visitTaskRepository.Where(x => x.Id == task.VisitTaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
            task.SubjectCode = visitTaskInfo.BlindSubjectCode.IsNullOrEmpty() ? task.SubjectCode : visitTaskInfo.BlindSubjectCode;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2378,13 +2368,14 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
            var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x=>x.TrialReadingCriterion).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
            var isConvertedTask=await _visitTaskRepository.Where(x => x.Id == visitTaskId).Select(x=>x.IsConvertedTask).FirstNotNullAsync();
 | 
			
		||||
            switch (taskinfo.TrialReadingCriterion.CriterionType)
 | 
			
		||||
            {
 | 
			
		||||
                case CriterionType.IRECIST1Point1:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                    if (!taskinfo.IsConvertedTask &&
 | 
			
		||||
                    if (!isConvertedTask &&
 | 
			
		||||
                        (await _readingTaskQuestionAnswerRepository.AnyAsync(x => x.VisitTaskId == visitTaskId
 | 
			
		||||
                        && x.ReadingQuestionTrial.QuestionType == QuestionType.Tumor && x.Answer==(((int)OverallAssessment.PD)).ToString()))
 | 
			
		||||
                        )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
            //是否英文环境
 | 
			
		||||
            var isEn_Us=false;
 | 
			
		||||
 | 
			
		||||
            CreateMap<VisitTask, VisitTaskDto>();
 | 
			
		||||
            CreateMap<ShortcutKey, DefaultShortcutKeyView>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<ReadingPeriodSetAddOrEdit, ReadingPeriodSet>();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -723,7 +723,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
 | 
			
		|||
        {
 | 
			
		||||
            var visitTaskId = inDto.VisitTaskId;
 | 
			
		||||
 | 
			
		||||
            var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).FirstNotNullAsync();
 | 
			
		||||
            var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).ProjectTo<VisitTaskDto>(_mapper.ConfigurationProvider).FirstNotNullAsync();
 | 
			
		||||
 | 
			
		||||
            var baseLineVisitId = await _subjectVisitRepository.Where(x => x.SubjectId == taskinfo.SubjectId && x.IsBaseLine).Select(x => x.Id).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -293,10 +293,10 @@ namespace IRaCIS.Core.Domain.Models
 | 
			
		|||
        public bool IsAnalysisCreate { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 是否是转变的任务(转为IRECIST)
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public bool IsConvertedTask { get; set; } = false;
 | 
			
		||||
        ///// <summary>
 | 
			
		||||
        ///// 是否是转变的任务(转为IRECIST)
 | 
			
		||||
        ///// </summary>
 | 
			
		||||
        //public bool IsConvertedTask { get; set; } = false;
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 转换之前的任务Id(转化的任务才有该值)
 | 
			
		||||
| 
						 | 
				
			
			@ -304,15 +304,15 @@ namespace IRaCIS.Core.Domain.Models
 | 
			
		|||
        public Guid? BeforeConvertedTaskId { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
       // [Projectable]
 | 
			
		||||
        [Projectable]
 | 
			
		||||
 | 
			
		||||
       // public bool IsConvertedTask => Subject.SubjectVisitTaskList.Where(t => (t.TrialReadingCriterionId == TrialReadingCriterionId
 | 
			
		||||
       //  && t.DoctorUserId == DoctorUserId && t.BeforeConvertedTaskId!=null
 | 
			
		||||
       //  && t.TaskState == TaskState.Effect &&
 | 
			
		||||
       //  t.VisitTaskNum < VisitTaskNum
 | 
			
		||||
       //  && t.IsSelfAnalysis == IsSelfAnalysis
 | 
			
		||||
       //  && t.ArmEnum == ArmEnum)|| BeforeConvertedTaskId!=null
 | 
			
		||||
       //).Any();
 | 
			
		||||
        public bool IsConvertedTask => Subject.SubjectVisitTaskList.Where(t => (t.TrialReadingCriterionId == TrialReadingCriterionId
 | 
			
		||||
         && t.DoctorUserId == DoctorUserId && t.BeforeConvertedTaskId != null
 | 
			
		||||
         && t.TaskState == TaskState.Effect &&
 | 
			
		||||
         t.VisitTaskNum < VisitTaskNum
 | 
			
		||||
         && t.IsSelfAnalysis == IsSelfAnalysis
 | 
			
		||||
         && t.ArmEnum == ArmEnum) || BeforeConvertedTaskId != null
 | 
			
		||||
      ).Any();
 | 
			
		||||
 | 
			
		||||
        [NotMapped]
 | 
			
		||||
        public List<CrterionDictionaryGroup> CrterionDictionaryGroup
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue