| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -617,11 +617,11 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        public async Task<List<RecommendMedicalPackageDto>> GetCustomerOrgRecommendMedicalPackageListByPatientRegisterIdAsync(RecommendMedicalPackagePatientRegisterIdInputDto input) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var customerOrgGroupEntity = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join customerOrgGroup in await _customerOrgGroupRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on patientRegister.CustomerOrgGroupId equals customerOrgGroup.CustomerOrgGroupId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                           | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            where patientRegister.PatientRegisterId == input.PatientRegisterId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            select customerOrgGroup | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          join customerOrgGroup in await _customerOrgGroupRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          on patientRegister.CustomerOrgGroupId equals customerOrgGroup.CustomerOrgGroupId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          where patientRegister.PatientRegisterId == input.PatientRegisterId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          select customerOrgGroup | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            ).FirstOrDefault(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var recommendMedicalPackageDtos = new List<RecommendMedicalPackageDto>(); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -662,23 +662,23 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var asbitems = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join customerOrgGroup in await _customerOrgGroupRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on patientRegister.CustomerOrgGroupId equals customerOrgGroup.CustomerOrgGroupId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join registerCheck in await _registerCheckRepository.GetQueryableAsync()  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join registerCheck in await _registerCheckRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on patientRegister.PatientRegisterId equals registerCheck.PatientRegisterId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join registerCheckAsbitem in await _registerCheckAsbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on registerCheck.RegisterCheckId equals registerCheckAsbitem.RegisterCheckId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join asbitem in await _asbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on registerCheckAsbitem.AsbitemId equals asbitem.AsbitemId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join itemType in await _itemTypeRepository.GetQueryableAsync()   | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            join itemType in await _itemTypeRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            on asbitem.ItemTypeId equals itemType.ItemTypeId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            where registerCheck.PatientRegisterId == input.PatientRegisterId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            select new | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                               customerOrgGroup, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                               asbitem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                               itemType | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                customerOrgGroup, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                asbitem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                itemType | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                             ).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var recommendMedicalPackageDto = new RecommendMedicalPackageDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -690,22 +690,22 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var medicalPackageAsbitems = asbitems.Select(o=>  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var medicalPackageAsbitems = asbitems.Select(o => | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                           new RecommendMedicalPackageAsbitem() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              AsbitemId = o.asbitem.AsbitemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              AsbitemName = o.asbitem.AsbitemName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              ShortName = o.asbitem.ShortName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              Price = o.asbitem.Price, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              ClinicalMeaning = o.asbitem.ClinicalMeaning, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              Warn = o.asbitem.Warn, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              IsBelongMedicalPackage = 'Y', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              DisplayOrder = o.asbitem.ItemType.DisplayOrder * 100 + o.asbitem.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                           { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               AsbitemId = o.asbitem.AsbitemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               AsbitemName = o.asbitem.AsbitemName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               ShortName = o.asbitem.ShortName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               Price = o.asbitem.Price, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               ClinicalMeaning = o.asbitem.ClinicalMeaning, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               Warn = o.asbitem.Warn, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               IsBelongMedicalPackage = 'Y', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               DisplayOrder = o.asbitem.ItemType.DisplayOrder * 100 + o.asbitem.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                           }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            recommendMedicalPackageDto.Asbitems.AddRange(medicalPackageAsbitems); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //----推荐组合项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -760,7 +760,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var age = DateTime.Now.Year - ((DateTime)person.BirthDate).Year; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var medicalPackages = await _medicalPackageRepository.GetListAsync(o => o.IsActive == 'Y' && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                  o.IsWebAppoint == 'Y' && o.IsBasicRecommend == 'Y' && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                  (o.ForSexId == ForSexFlag.All || o.ForSexId == person.SexId) &&  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                  (o.ForSexId == ForSexFlag.All || o.ForSexId == person.SexId) && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                  o.AgeUpperLimit >= age && o.AgeLowerLimit <= age); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            if (person.MaritalStatusId == MaritalStatusFlag.UnMarried) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -822,7 +822,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              ClinicalMeaning = asbitem.ClinicalMeaning, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              Warn = asbitem.Warn, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              IsBelongMedicalPackage = 'Y', | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              DisplayOrder = itemType.DisplayOrder * 100 +  asbitem.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                              DisplayOrder = itemType.DisplayOrder * 100 + asbitem.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                          }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            recommendMedicalPackageDto.Asbitems.AddRange(medicalPackageAsbitems); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -839,28 +839,28 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //----推荐组合项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var personDiseaseRiskLevelDtos = await GetDiseaseRiskListByPersonIdAsync(input.PersonId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var personDiseaseRiskLevelDtos = await GetDiseaseRiskListByPersonIdAsync(input.PersonId, input.RecommendId); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //var pregnancyAsbitems = await _asbitemRepository.GetListAsync(o =>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //o.ForPregnantFlag == ForPregnantFlag.PreparePregnancy || o.ForPregnantFlag == ForPregnantFlag.Pregnancy);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //去掉基本套餐已经包含的组合项目和和怀孕禁止检查的项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var personDiseaseRiskLevelDto in personDiseaseRiskLevelDtos) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                for (var i = 0;  i< personDiseaseRiskLevelDto.Asbitems.Count; i++ ) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                for (var i = 0; i < personDiseaseRiskLevelDto.Asbitems.Count; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var personDiseaseRiskLevelAsbitem = personDiseaseRiskLevelDto.Asbitems[i]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (medicalPackageAsbitems.Where(o => o.AsbitemId == personDiseaseRiskLevelAsbitem.AsbitemId).Any()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        personDiseaseRiskLevelDto.Asbitems.Remove(personDiseaseRiskLevelAsbitem); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        i --; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        i--; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var personDiseaseRiskLevelResultDtos = new List<PersonDiseaseRiskLevelDto>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var personDiseaseRiskLevelDto in personDiseaseRiskLevelDtos) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if(personDiseaseRiskLevelDto.Asbitems.Where(o=>o.AsbitemRecommendLevelId == input.RecommendId).Count() > 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (personDiseaseRiskLevelDto.Asbitems.Where(o => o.AsbitemRecommendLevelId == input.RecommendId).Count() > 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //只有有推荐的项目才进入推荐风险项目列表
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    var personDiseaseRiskLevelResultDto = new PersonDiseaseRiskLevelDto() | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -871,12 +871,12 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelId = personDiseaseRiskLevelDto.DiseaseRiskLevelId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelName = personDiseaseRiskLevelDto.DiseaseRiskLevelName | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    personDiseaseRiskLevelResultDto.Asbitems =  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    personDiseaseRiskLevelResultDto.Asbitems = | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        personDiseaseRiskLevelDto.Asbitems.Where(o => o.AsbitemRecommendLevelId == input.RecommendId).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    recommendMedicalPackageDto.SumPrice += personDiseaseRiskLevelResultDto.Asbitems.Sum(o => o.Price); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    personDiseaseRiskLevelResultDtos.Add(personDiseaseRiskLevelResultDto); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					               | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            recommendMedicalPackageDto.DiseaseRiskLevelAsbitems = personDiseaseRiskLevelResultDtos; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return recommendMedicalPackageDto; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -899,15 +899,15 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    PersonId = input.PersonId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    RecommendId = i + 1 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if(i == 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if (i == 0) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    recommendMedicalPackageDto.MedicalPackageName = "推荐必查方案"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                else if(i == 1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                else if (i == 1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    recommendMedicalPackageDto.MedicalPackageName = "精准筛查方案"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                else if(i == 2) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                else if (i == 2) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    recommendMedicalPackageDto.MedicalPackageName = "深入检查方案"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -920,7 +920,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// </summary>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// <param name="input"></param>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        /// <returns></returns>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private async Task<List<PersonDiseaseRiskLevelDto>> GetDiseaseRiskListByPersonIdAsync(Guid personId) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        private async Task<List<PersonDiseaseRiskLevelDto>> GetDiseaseRiskListByPersonIdAsync(Guid personId, int recommendId = 1) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegister = (await _questionRegisterRepository.GetQueryableAsync()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					               .Where(o => o.PersonId == personId) | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -931,7 +931,7 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                return null; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取人员所有答案和对应的组合项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegisterItems = (from questionRegisterItem in await _questionRegisterItemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         join questionRegisterAnswer in await _questionRegisterAnswerRrepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         on questionRegisterItem.QuestionRegisterItemId equals questionRegisterAnswer.QuestionRegisterItemId | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -941,7 +941,13 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         on questionRegisterItem.QuestionId equals question.QuestionId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         join questionSubjectType in await _questionSubjectTypeRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         on question.QuestionSubjectTypeId equals questionSubjectType.QuestionSubjectTypeId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         where questionRegisterItem.QuestionRegisterId == questionRegister.QuestionRegisterId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         join questionAnswerAsbitem in await _questionAnswerAsbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         on questionRegisterAnswer.QuestionAnswerId equals questionAnswerAsbitem.QuestionAnswerId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         join asbitem in await _asbitemRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         on questionAnswerAsbitem.AsbitemId equals asbitem.AsbitemId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         where questionRegisterItem.QuestionRegisterId == questionRegister.QuestionRegisterId && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                               questionAnswerAsbitem.AsbitemRecommendLevelId == recommendId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         orderby questionSubjectType.DisplayOrder, question.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         select new | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         { | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -949,9 +955,12 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             question, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             questionRegisterItem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             questionRegisterAnswer, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             questionAnswer | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             questionAnswerAsbitem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             questionAnswer, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                             asbitem, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                         }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取所有疾病风险基础字典
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var diseaseRisks = (from diseaseRisk in await _diseaseRiskRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                join diseaseRiskLevel in await _diseaseRiskLevelRepository.GetQueryableAsync() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                on diseaseRisk.DiseaseRiskId equals diseaseRiskLevel.DiseaseRiskId into emptyDiseaseRiskLevel | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -967,13 +976,128 @@ namespace Shentun.WebPeis.AppointPatientRegisters | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                    haveQuestionAnswerRiskLevel | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                                }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegisterDiseaseRiskDtos = diseaseRisks.GroupBy(o => o.diseaseRisk) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                .Select(o => new PersonDiseaseRiskLevelDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取人员所有答案
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionAnswers = questionRegisterItems.GroupBy(o => o.questionAnswer) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                .Select(x => new QuestionAnswer | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    QuestionAnswerId = x.Key.QuestionAnswerId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    QuestionAnswerName = x.Key.QuestionAnswerName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    DisplayOrder = x.Key.DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }).OrderBy(m => m.DisplayOrder).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取答案对应的所有风险级别和组合项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var personDiseaseRiskLevels = new List<PersonDiseaseRiskLevelDto>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var questionAnswer in questionAnswers) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //获取答案对应的所有组合项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var questionAnswerAsbitems = questionRegisterItems.Where(o => o.questionAnswer.QuestionAnswerId == questionAnswer.QuestionAnswerId) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    .Select(o => new RecommendMedicalPackageAsbitem() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        AsbitemId = o.asbitem.AsbitemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        AsbitemName = o.asbitem.AsbitemName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ShortName = o.asbitem.ShortName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Price = o.asbitem.Price, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ClinicalMeaning = o.asbitem.ClinicalMeaning, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Warn = o.asbitem.Warn, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DisplayOrder = o.asbitem.DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        AsbitemRecommendLevelId = o.questionAnswerAsbitem.AsbitemRecommendLevelId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                       ).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                //获取答案对应的所有风险级别
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var personDiseaseRiskLevelDtos = diseaseRisks.Where(o => o.haveQuestionAnswerRiskLevel != null && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                   o.haveQuestionAnswerRiskLevel.QuestionAnswerId == questionAnswer.QuestionAnswerId) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    .Select(o => new PersonDiseaseRiskLevelDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskId = o.diseaseRisk.DiseaseRiskId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskName = o.diseaseRisk.DiseaseRiskName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DisplayOrder = o.diseaseRisk.DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelId = o.haveDiseaseRiskLevel.DiseaseRiskLevelId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelName = o.haveDiseaseRiskLevel.DiseaseRiskLevelName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelDisplayOrder = o.haveDiseaseRiskLevel.DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Asbitems = questionAnswerAsbitems | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }).DistinctBy(o => o.DiseaseRiskId).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                if(!personDiseaseRiskLevelDtos.Any()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    //如果答案没有对应的风险级别则虚拟一个,用答案名称作为风险级别
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                  var personDiseaseRiskLevelDto =   new PersonDiseaseRiskLevelDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskId = questionAnswer.QuestionAnswerId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskName = questionAnswer.QuestionAnswerName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DisplayOrder = 1000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelId = questionAnswer.QuestionAnswerId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelName = questionAnswer.QuestionAnswerName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DiseaseRiskLevelDisplayOrder = 1000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Asbitems = questionAnswerAsbitems | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    personDiseaseRiskLevels.Add(personDiseaseRiskLevelDto); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                else | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    personDiseaseRiskLevels.AddRange(personDiseaseRiskLevelDtos); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //合并同一个疾病风险中的不同组合项目,将低级别风险中的组合项目合并到高风险级别中
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            personDiseaseRiskLevels = personDiseaseRiskLevels.OrderBy(o => o.DisplayOrder).ThenByDescending(o => o.DiseaseRiskLevelDisplayOrder).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            for (var i = 0; i < personDiseaseRiskLevels.Count; i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                var loweriseaseRiskLevels = personDiseaseRiskLevels.Where(o => o.DiseaseRiskId == personDiseaseRiskLevels[i].DiseaseRiskId && | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                   o.DiseaseRiskLevelDisplayOrder < personDiseaseRiskLevels[i].DiseaseRiskLevelDisplayOrder).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                foreach (var loweriseaseRiskLevel in loweriseaseRiskLevels) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    personDiseaseRiskLevels[i].Asbitems.AddRange(loweriseaseRiskLevel.Asbitems); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                personDiseaseRiskLevels.RemoveAll(loweriseaseRiskLevels); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //去掉相同级别的相同组合项目
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var personDiseaseRiskLevel in personDiseaseRiskLevels) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                personDiseaseRiskLevel.Asbitems = personDiseaseRiskLevel.Asbitems.GroupBy(o => new { o.AsbitemId, o.AsbitemRecommendLevelId }) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    .Select(o => new RecommendMedicalPackageAsbitem() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        AsbitemId = o.FirstOrDefault().AsbitemId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        AsbitemName = o.FirstOrDefault().AsbitemName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ShortName = o.FirstOrDefault().ShortName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Price = o.FirstOrDefault().Price, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        ClinicalMeaning = o.FirstOrDefault().ClinicalMeaning, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        Warn = o.FirstOrDefault().Warn, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        DisplayOrder = o.FirstOrDefault().DisplayOrder, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        AsbitemRecommendLevelId = o.FirstOrDefault().AsbitemRecommendLevelId | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            //获取有共同组合项目的风险级别
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var newPersonDiseaseRiskLevelDtos = new List<PersonDiseaseRiskLevelDto>(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var personDiseaseRiskLevel in personDiseaseRiskLevels) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                foreach (var personDiseaseRiskLevel2 in personDiseaseRiskLevels) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    DiseaseRiskId = o.Key.DiseaseRiskId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    DiseaseRiskName = o.Key.DiseaseRiskName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    DisplayOrder = o.Key.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    if (personDiseaseRiskLevel == personDiseaseRiskLevel2) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        continue; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    for (var i = 0; i < personDiseaseRiskLevel2.Asbitems.Count(); i++) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        if (personDiseaseRiskLevel.Asbitems.Where(o => o.AsbitemId == personDiseaseRiskLevel2.Asbitems[i].AsbitemId).Any()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            personDiseaseRiskLevel.DiseaseRiskName += "," + personDiseaseRiskLevel2.DiseaseRiskName; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            personDiseaseRiskLevel2.Asbitems.Remove(personDiseaseRiskLevel2.Asbitems[i]); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                            i--; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                        } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            return personDiseaseRiskLevels; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            var questionRegisterDiseaseRiskDtos = diseaseRisks.GroupBy(o => o.diseaseRisk) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            .Select(o => new PersonDiseaseRiskLevelDto() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                DiseaseRiskId = o.Key.DiseaseRiskId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                DiseaseRiskName = o.Key.DiseaseRiskName, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                DisplayOrder = o.Key.DisplayOrder | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            }).ToList(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            foreach (var diseaseRisk in questionRegisterDiseaseRiskDtos) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					            { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |