修改path
							parent
							
								
									38ef0557a6
								
							
						
					
					
						commit
						08354e00b0
					
				| 
						 | 
				
			
			@ -1251,6 +1251,49 @@
 | 
			
		|||
            <param name="inDto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.GetDeleteLesionStatrIndex(IRaCIS.Core.Application.Service.Reading.Dto.DeleteReadingRowAnswerInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            删除病灶获取起始病灶序号
 | 
			
		||||
            </summary>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.GetReadingReportEvaluation(IRaCIS.Core.Application.Service.Reading.Dto.GetReadingReportEvaluationInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            获取阅片报告
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="indto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.AddTaskLesionAnswerFromLastTask(IRaCIS.Core.Application.ViewModel.AddTaskLesionAnswerFromLastTaskInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            将上一次的病灶信息添加到这一次
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="inDto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.TestCalculate(System.Guid,IRaCIS.Core.Domain.Share.QuestionType)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            测试计算
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="visitTaskId"></param>
 | 
			
		||||
            <param name="type"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.CalculateTask(IRaCIS.Core.Application.Service.Reading.Dto.CalculateTaskInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            计算任务
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="inDto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ReadingCalculate.SelfDefineCalculateService.ReadingCalculate(IRaCIS.Core.Application.Service.Reading.Dto.ReadingCalculateDto,System.Collections.Generic.List{IRaCIS.Core.Domain.Share.QuestionType})">
 | 
			
		||||
            <summary>
 | 
			
		||||
            自动计算
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="inDto"></param>
 | 
			
		||||
            <param name="calculateType"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Core.Application.Service.ICriterionCalculateService.CalculateTask(IRaCIS.Core.Application.Service.Reading.Dto.CalculateTaskInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            自动计算 并修改值
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,9 +72,9 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
 | 
			
		||||
            var verifyExp3 = new EntityVerifyExp<SubjectVisit>()
 | 
			
		||||
            {
 | 
			
		||||
                VerifyExp = t => t.SubjectId == svCommand.SubjectId && t.VisitName==svCommand.VisitName,
 | 
			
		||||
                VerifyExp = t => t.SubjectId == svCommand.SubjectId && t.VisitName == svCommand.VisitName,
 | 
			
		||||
                VerifyMsg = "该受试者的访视计划中已经包含一个具有相同访视名称的访视。"
 | 
			
		||||
               
 | 
			
		||||
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            svCommand.BlindName = "B" + ((int)(svCommand.VisitNum * 10)).ToString("D3");
 | 
			
		||||
| 
						 | 
				
			
			@ -95,13 +95,13 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                dbBeforeEntity = await _subjectVisitRepository.InsertFromDTOAsync(svCommand, false, verifyExp1, verifyExp2,verifyExp3);
 | 
			
		||||
                dbBeforeEntity = await _subjectVisitRepository.InsertFromDTOAsync(svCommand, false, verifyExp1, verifyExp2, verifyExp3);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                dbBeforeEntity = await _subjectVisitRepository.UpdateFromDTOAsync(svCommand, false, false, verifyExp1, verifyExp2, verifyExp3);
 | 
			
		||||
               
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                if (svCommand.PDState != dbBeforeEntity.PDState && dbBeforeEntity.SubmitState == SubmitStateEnum.Submitted)
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -151,7 +151,7 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
        [Authorize(Policy = IRaCISPolicy.PM_IQC)]
 | 
			
		||||
        public async Task<IResponseOutput> SetSubjectVisitUrgent(Guid subjectVisitId, bool isUrgent)
 | 
			
		||||
        {
 | 
			
		||||
            await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { IsUrgent = isUrgent },true);
 | 
			
		||||
            await _subjectVisitRepository.UpdatePartialFromQueryAsync(subjectVisitId, u => new SubjectVisit() { IsUrgent = isUrgent }, true);
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -176,8 +176,8 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
                return ResponseOutput.NotOk("当前访视已经被设置为另一访视的上一访视,不允许删除。");
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await _subjectVisitRepository.DeleteFromQueryAsync(s => s.Id == id,true);
 | 
			
		||||
            
 | 
			
		||||
            await _subjectVisitRepository.DeleteFromQueryAsync(s => s.Id == id, true);
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -205,7 +205,7 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
            var studyIds = studyList.Select(t => t.StudyId).ToList();
 | 
			
		||||
 | 
			
		||||
            var instanceList = await _repository.Where<DicomInstance>(t => studyIds.Contains(t.StudyId))
 | 
			
		||||
                   .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber }).ToListAsync();
 | 
			
		||||
                   .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber,t.Path }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            foreach (var t in studyList)
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -215,7 +215,15 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
               .ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                t.SeriesList.ForEach(series => series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList());
 | 
			
		||||
                t.SeriesList.ForEach(series =>
 | 
			
		||||
                {
 | 
			
		||||
                    series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
 | 
			
		||||
 | 
			
		||||
                    series.InstancePathList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Path).ToList();
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                );
 | 
			
		||||
 | 
			
		||||
                //设置为阅片与否 不更改数据库检查  的instance数量 和 SeriesCount  所以这里要实时统计
 | 
			
		||||
                t.SeriesCount = t.SeriesList.Count();
 | 
			
		||||
| 
						 | 
				
			
			@ -245,28 +253,28 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
            var taskInfo = await _visitTaskRepository.Where(x => x.Id == indto.VisitTaskId).FirstNotNullAsync();
 | 
			
		||||
          
 | 
			
		||||
            if(taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
 | 
			
		||||
 | 
			
		||||
            if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
 | 
			
		||||
            {
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                var thisStudyIds = thisRowinfo.Select(x => x.StudyId).ToList();
 | 
			
		||||
                var thisSeriesIdIds = thisRowinfo.Where(x=>x.SeriesId!=null).Select(x => x.SeriesId).ToList();
 | 
			
		||||
                if (thisRowinfo.Count>0)
 | 
			
		||||
                var thisSeriesIdIds = thisRowinfo.Where(x => x.SeriesId != null).Select(x => x.SeriesId).ToList();
 | 
			
		||||
                if (thisRowinfo.Count > 0)
 | 
			
		||||
                {
 | 
			
		||||
                    var thisVisitTaskStudy= await _repository.Where<DicomStudy>(t => thisStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
 | 
			
		||||
                    var thisVisitTaskStudy = await _repository.Where<DicomStudy>(t => thisStudyIds.Contains(t.Id)).Select(k => new VisitStudyDTO()
 | 
			
		||||
                    {
 | 
			
		||||
                        InstanceCount = k.InstanceCount,
 | 
			
		||||
                      
 | 
			
		||||
 | 
			
		||||
                        SeriesCount = k.SeriesCount,
 | 
			
		||||
                       
 | 
			
		||||
 | 
			
		||||
                        StudyId = k.Id,
 | 
			
		||||
                        IsCriticalSequence=true,
 | 
			
		||||
                        IsCriticalSequence = true,
 | 
			
		||||
 | 
			
		||||
                    }).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
                    if (thisVisitTaskStudy != null)
 | 
			
		||||
                    {
 | 
			
		||||
                        var  item = await _repository.Where<DicomSeries>(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
 | 
			
		||||
                        var item = await _repository.Where<DicomSeries>(s => thisSeriesIdIds.Contains(s.Id)).OrderBy(s => s.SeriesNumber).
 | 
			
		||||
                            ThenBy(s => s.SeriesTime)
 | 
			
		||||
                            .ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -287,10 +295,10 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
                        result.Add(thisVisitTaskStudy);
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
                 
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var studyList = await _repository.Where<DicomStudy>(t => t.TrialId == indto.TrialId && t.SubjectVisitId == indto.SujectVisitId).Select(k => new VisitStudyDTO()
 | 
			
		||||
            {
 | 
			
		||||
| 
						 | 
				
			
			@ -299,20 +307,23 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
                SeriesCount = k.SeriesCount,
 | 
			
		||||
                StudyCode = k.StudyCode,
 | 
			
		||||
                StudyId = k.Id,
 | 
			
		||||
               
 | 
			
		||||
 | 
			
		||||
            }).ToListAsync();
 | 
			
		||||
            var studyIds = studyList.Select(t => t.StudyId).ToList();
 | 
			
		||||
 | 
			
		||||
            var instanceList = await _repository.Where<DicomInstance>(t => studyIds.Contains(t.StudyId))
 | 
			
		||||
                   .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber }).ToListAsync();
 | 
			
		||||
                   .Select(t => new { t.SeriesId, t.Id, t.InstanceNumber,t.Path }).ToListAsync();
 | 
			
		||||
 | 
			
		||||
            foreach (var t in studyList)
 | 
			
		||||
            {
 | 
			
		||||
                t.SeriesList = await _repository.Where<DicomSeries>(s => s.StudyId == t.StudyId&&s.IsReading).OrderBy(s => s.SeriesNumber).
 | 
			
		||||
                t.SeriesList = await _repository.Where<DicomSeries>(s => s.StudyId == t.StudyId && s.IsReading).OrderBy(s => s.SeriesNumber).
 | 
			
		||||
               ThenBy(s => s.SeriesTime)
 | 
			
		||||
               .ProjectTo<DicomSeriesDTO>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
 | 
			
		||||
                t.SeriesList.ForEach(series => series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList());
 | 
			
		||||
                t.SeriesList.ForEach(series => { 
 | 
			
		||||
                    series.InstanceList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Id).ToList();
 | 
			
		||||
                    series.InstancePathList = instanceList.Where(t => t.SeriesId == series.Id).OrderBy(t => t.InstanceNumber).Select(k => k.Path).ToList();
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                //设置为阅片与否 不更改数据库检查  的instance数量 和 SeriesCount  所以这里要实时统计
 | 
			
		||||
                t.SeriesCount = t.SeriesList.Count();
 | 
			
		||||
| 
						 | 
				
			
			@ -329,11 +340,11 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
            {
 | 
			
		||||
                InstanceCount = x.FileCount,
 | 
			
		||||
                StudyId = x.Id,
 | 
			
		||||
                Modalities=x.Modality,
 | 
			
		||||
                SeriesCount=1,
 | 
			
		||||
                StudyCode=x.StudyCode,
 | 
			
		||||
                Modalities = x.Modality,
 | 
			
		||||
                SeriesCount = 1,
 | 
			
		||||
                StudyCode = x.StudyCode,
 | 
			
		||||
                IsDicom = false,
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
            }).ToList();
 | 
			
		||||
 | 
			
		||||
            foreach (var item in noDicomStudyList)
 | 
			
		||||
| 
						 | 
				
			
			@ -359,9 +370,9 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            if (studyList==null||studyList.Count == 0)
 | 
			
		||||
            if (studyList == null || studyList.Count == 0)
 | 
			
		||||
            {
 | 
			
		||||
                studyList=new List<VisitStudyDTO>();
 | 
			
		||||
                studyList = new List<VisitStudyDTO>();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            studyList.AddRange(noDicomStudyList);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue