| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -36,9 +36,11 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly IRepository<QuestionAnswerRiskLevel> _questionAnswerRiskLevelRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly IRepository<QuestionAnswerAsbitem> _questionAnswerAsbitemRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly IRepository<Asbitem> _asbitemRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly IRepository<Person> _personRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly QuestionRegisterManager _questionRegisterManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly IUnitOfWorkManager _unitOfWorkManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly SysParmValueManager _sysParmValueManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private readonly PersonManager _personManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        public QuestionRegisterAppService(IRepository<QuestionRegister> repository, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IRepository<QuestionRegisterItem> questionRegisterItemRepository, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IRepository<QuestionRegisterAnswer> questionRegisterAnswerRrepository, | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -52,7 +54,9 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IRepository<QuestionAnswerRiskLevel> questionAnswerRiskLevelRepository, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IRepository<QuestionAnswerAsbitem> questionAnswerAsbitemRepository, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IRepository<Asbitem> asbitemRepository, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            SysParmValueManager sysParmValueManager) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            SysParmValueManager sysParmValueManager, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            IRepository<Person> personRepository, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            PersonManager personManager) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _repository = repository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _questionRegisterItemRepository = questionRegisterItemRepository; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -68,6 +72,8 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _questionAnswerAsbitemRepository = questionAnswerAsbitemRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _asbitemRepository = asbitemRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _sysParmValueManager = sysParmValueManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _personRepository = personRepository; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _personManager = personManager; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -231,6 +237,26 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //超重信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //var person = await _personRepository.GetAsync(o => o.PersonId == input.PersonId);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            _personManager.IsOverweight(input.PersonId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var isOverweight = await _personManager.IsOverweight(input.PersonId);  //await IsOverweight(person.Height, person.Weight);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (isOverweight) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //危险因素编码是03
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var personSubjectTypeDto = personSubjectTypeDtos.Where(o => o.QuestionSubjectTypeId == "03").Single(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var questionAnswerOverweightCodeStr = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "question_answer_overweight_code"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (!Guid.TryParse(questionAnswerOverweightCodeStr, out var questionAnswerOverweightCode)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    throw new UserFriendlyException("在系统参数中超重编码维护不正确"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var questionAnswer = await _questionAnswerRepository.GetAsync(o => o.QuestionAnswerId == questionAnswerOverweightCode); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                personSubjectTypeDto.Answers.Add(new PersonSubjectTypeQuestionAnswer() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    QuestionAnswerName = questionAnswer.QuestionAnswerName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    DisplayOrder = questionAnswer.DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return personSubjectTypeDtos; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -240,7 +266,7 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// <param name="input"></param>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// <returns></returns>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        [HttpPost("api/app/QuestionRegister/GetQuestionRegisterListByPersonId")] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        public async Task<List<QuestionRegisterItemResultDto>> GetQuestionRegisterListByPersonIdAsync(PersonAppointInputDto input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        public async Task<List<QuestionRegisterItemResultDto>> GetQuestionRegisterListByPersonIdAsync(PersonIdInputDto input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegister = (await _repository.GetQueryableAsync()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					               .Where(o => o.PersonId == input.PersonId) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -328,7 +354,7 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// <param name="input"></param>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// <returns></returns>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        [HttpPost("api/app/QuestionRegister/GetDiseaseRiskListByPersonId")] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        public async Task<List<QuestionRegisterDiseaseRiskDto>> GetDiseaseRiskListByPersonIdAsync(PersonAppointInputDto input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        public async Task<List<QuestionRegisterDiseaseRiskDto>> GetDiseaseRiskListByPersonIdAsync(PersonIdInputDto input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegister = (await _repository.GetQueryableAsync()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					               .Where(o => o.PersonId == input.PersonId) | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -383,6 +409,20 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    DisplayOrder = o.Key.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //超重信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var isOverweight = await _personManager.IsOverweight(input.PersonId);  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            QuestionAnswer overweightQuestionAnswer = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (isOverweight) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var questionAnswerOverweightCodeStr = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "question_answer_overweight_code"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (!Guid.TryParse(questionAnswerOverweightCodeStr, out var questionAnswerOverweightCode)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    throw new UserFriendlyException("在系统参数中超重编码维护不正确"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                overweightQuestionAnswer = await _questionAnswerRepository.GetAsync(o => o.QuestionAnswerId == questionAnswerOverweightCode); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var diseaseRisk in questionRegisterDiseaseRiskDtos) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //疾病级别必须按优先级别排序,取顺序最高的作为最高风险级
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -403,6 +443,15 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //超重
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (overweightQuestionAnswer != null && diseaseRiskLevel.haveQuestionAnswerRiskLevel != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (diseaseRiskLevel.haveQuestionAnswerRiskLevel.QuestionAnswerId == overweightQuestionAnswer.QuestionAnswerId) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            matchDiseaseRiskLevel = diseaseRiskLevel.haveDiseaseRiskLevel; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (matchDiseaseRiskLevel == null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -435,23 +484,38 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (input == null) { throw new UserFriendlyException("input参数不能为空"); } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegister = (await _repository.GetQueryableAsync()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              .Where(o => o.PersonId == input.PersonId) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              .OrderByDescending(o => o.CreationTime) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					              .FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (questionRegister == null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var diseaseRisk = await _diseaseRiskRepository.GetAsync(o => o.DiseaseRiskId == input.DiseaseRiskId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var diseaseRiskLevels = (await _diseaseRiskLevelRepository.GetListAsync(o => o.DiseaseRiskId == input.DiseaseRiskId)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                 .OrderBy(o => o.DisplayOrder); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取人员疾病风险列表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var diseaseRiskList = await GetDiseaseRiskListByPersonIdAsync(new PersonAppointInputDto() { PersonId = input.PersonId }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var diseaseRiskList = await GetDiseaseRiskListByPersonIdAsync(new PersonIdInputDto() { PersonId = input.PersonId }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var personDiseaseRisk = diseaseRiskList.Where(o => o.DiseaseRiskId == input.DiseaseRiskId).First(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var diseaseRiskLevel = diseaseRiskLevels.Where(o => o.DiseaseRiskLevelId == personDiseaseRisk.DiseaseRiskLevelId).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var asbitems = (from questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var asbitems = (from questionRegisterItem in await _questionRegisterItemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join questionRegisterAnswer in await _questionRegisterAnswerRrepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on questionRegisterItem.QuestionRegisterItemId equals questionRegisterAnswer.QuestionRegisterItemId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on questionRegisterAnswer.QuestionAnswerId equals questionAnswerAsbitem.QuestionAnswerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join asbitem in await _asbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on questionAnswerAsbitem.AsbitemId equals asbitem.AsbitemId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join questionAnswerRiskLevel in await _questionAnswerRiskLevelRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on questionAnswerAsbitem.QuestionAnswerId equals questionAnswerRiskLevel.QuestionAnswerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            where questionAnswerRiskLevel.DiseaseRiskLevelId == diseaseRiskLevel.DiseaseRiskLevelId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            where questionRegisterItem.QuestionRegisterId == questionRegister.QuestionRegisterId && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                               questionAnswerRiskLevel.DiseaseRiskLevelId == diseaseRiskLevel.DiseaseRiskLevelId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            orderby asbitem.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            select asbitem).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            select asbitem).Distinct().ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegisterDiseaseRiskSingleDto = new QuestionRegisterDiseaseRiskSingleDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -475,15 +539,50 @@ namespace Shentun.WebPeis.QuestionRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }).ToList() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //超重信息
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegister = (await _repository.GetQueryableAsync()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             .Where(o => o.PersonId == input.PersonId) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             .OrderByDescending(o => o.CreationTime) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             .FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (questionRegister == null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var isOverweight = await _personManager.IsOverweight(input.PersonId);   | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            QuestionAnswer overweightQuestionAnswer = null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (isOverweight) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var questionAnswerOverweightCodeStr = await _sysParmValueManager.GetSysParmValueAsync(Guid.Empty, "question_answer_overweight_code"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (!Guid.TryParse(questionAnswerOverweightCodeStr, out var questionAnswerOverweightCode)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    throw new UserFriendlyException("在系统参数中超重编码维护不正确"); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                overweightQuestionAnswer = await _questionAnswerRepository.GetAsync(o => o.QuestionAnswerId == questionAnswerOverweightCode); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var questionAnswerRiskLevel = await _questionAnswerRiskLevelRepository.FindAsync(o => o.QuestionAnswerId == overweightQuestionAnswer.QuestionAnswerId && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                  o.DiseaseRiskLevelId == diseaseRiskLevel.DiseaseRiskLevelId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (questionAnswerRiskLevel != null) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var questionAnswerAsbitems = (from questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                                  join asbitem in await _asbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                                  on questionAnswerAsbitem.AsbitemId equals asbitem.AsbitemId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                                  where questionAnswerAsbitem.QuestionAnswerId == overweightQuestionAnswer.QuestionAnswerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                                  select asbitem).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    foreach (var questionAnswerAsbitem in questionAnswerAsbitems) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (!questionRegisterDiseaseRiskSingleDto.Asbitems.Where(o => o.AsbitemId == questionAnswerAsbitem.AsbitemId).Any()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            questionRegisterDiseaseRiskSingleDto.Asbitems.Add(new QuestionRegisterDiseaseRiskAsbitem() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                AsbitemId = questionAnswerAsbitem.AsbitemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                AsbitemName = questionAnswerAsbitem.AsbitemName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                DisplayOrder = questionAnswerAsbitem.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    questionRegisterDiseaseRiskSingleDto.Answers.Add(new QuestionRegisterItemResultAnswer() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Answer = overweightQuestionAnswer.QuestionAnswerName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DisplayOrder = overweightQuestionAnswer.DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegisterItems = (from questionRegisterItem in await _questionRegisterItemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         join questionRegisterAnswer in await _questionRegisterAnswerRrepository.GetQueryableAsync() | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |