diff --git a/src/Shentun.WebPeis.Application.Contracts/Asbitems/ItemTypeIdInputDto.cs b/src/Shentun.WebPeis.Application.Contracts/Asbitems/ItemTypeIdInputDto.cs
new file mode 100644
index 0000000..c2b3daf
--- /dev/null
+++ b/src/Shentun.WebPeis.Application.Contracts/Asbitems/ItemTypeIdInputDto.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.WebPeis.Asbitems
+{
+    public class ItemTypeIdInputDto
+    {
+        /// 
+        /// 项目类别ID  不传时查所有
+        /// 
+        public Guid? ItemTypeId { get; set; }
+    }
+}
diff --git a/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs
index 81c8a17..9e2b93f 100644
--- a/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs
+++ b/src/Shentun.WebPeis.Application.Contracts/QuestionAnswers/QuestionAnswerRiskLevelDto.cs
@@ -6,7 +6,12 @@ namespace Shentun.WebPeis.QuestionAnswers
 {
     public class QuestionAnswerRiskLevelDto
     {
-        
+
+
+        /// 
+        /// 疾病风险ID
+        /// 
+        public Guid DiseaseRiskId { get; set; }
 
         /// 
         /// 问卷答案ID
diff --git a/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs b/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
index 5599e01..7a57904 100644
--- a/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
+++ b/src/Shentun.WebPeis.Application/Asbitems/AsbitemAppService.cs
@@ -2,6 +2,7 @@
 using Microsoft.AspNetCore.Mvc;
 using Shentun.WebPeis.Enums;
 using Shentun.WebPeis.Models;
+using Shentun.WebPeis.OrganizationUnits;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -139,5 +140,111 @@ namespace Shentun.WebPeis.Asbitems
             return entdto;
         }
 
+
+        /// 
+        /// 获取组合项目  根据项目类别
+        /// 
+        /// 
+        [HttpPost("api/app/Asbitem/GetBasicListByItemTypeId")]
+        public async Task> GetBasicListByItemTypeIdAsync(ItemTypeIdInputDto input)
+        {
+            var query = await _repository.GetQueryableAsync();
+            if (input.ItemTypeId != null)
+            {
+                var itemTypeIds = await GetItemTypeChildrenId(input.ItemTypeId.Value);
+                query = query.Where(m => itemTypeIds.Contains(m.ItemTypeId));
+            }
+
+            var entdto = query.Select(s => new BasicAsbitemDto
+            {
+                AsbitemId = s.AsbitemId,
+                AsbitemName = s.AsbitemName,
+                DisplayOrder = s.DisplayOrder,
+                ShortName = s.ShortName,
+                SimpleCode = s.SimpleCode
+            }).OrderBy(o => o.DisplayOrder).ToList();
+
+            return entdto;
+        }
+
+
+
+        /// 
+        /// 获取项目类别树型结构
+        /// 
+        /// 
+        [HttpPost("api/app/ItemType/GetByCodeAll")]
+        public async Task> GetByCodeAllAsync()
+        {
+            var dataList = await _itemTypeRepository.GetListAsync();
+            var items = from p in dataList.OrderBy(o => o.DisplayOrder)
+                        select new TreeChildViewDto()
+                        {
+                            Id = p.ItemTypeId,
+                            ParentId = p.ParentId,
+                            Code = p.PathCode,
+                            DisplayName = p.ItemTypeName,
+                            SimpleCode = p.SimpleCode,
+                            DisplayOrder = p.DisplayOrder
+                        };
+            return GetTree(items.ToList(), null);
+        }
+
+
+        /// 
+        /// 递归查询项目类别
+        /// 
+        /// 
+        /// 
+        /// 
+        private List GetTree(List items, Guid? parentId)
+        {
+            return (from p in items.AsParallel()
+                    where p.ParentId == parentId
+                    orderby p.DisplayOrder ascending
+                    let subs = GetTree(items, p.Id)
+                    select new TreeChildViewDto()
+                    {
+                        Id = p.Id,
+                        ParentId = p.ParentId,
+                        Code = p.Code,
+                        DisplayName = p.DisplayName,
+                        SimpleCode = p.SimpleCode,
+                        TreeChildren = subs.ToList()
+                    }
+                    ).ToList();
+        }
+
+
+        /// 
+        /// 获取包含子级的ID
+        /// 
+        /// 
+        /// 
+        private async Task> GetItemTypeChildrenId(Guid itemTypeId)
+        {
+            //var customerOrgEntList = await _repository.GetListAsync();
+
+            var itemType = await _itemTypeRepository.GetAsync(g => g.ItemTypeId == itemTypeId);
+            var itemTypeEntList = await _itemTypeRepository.GetListAsync(o => o.PathCode.StartsWith(itemType.PathCode));
+            List itemTypeIds = new List();
+
+            GetChildren(itemTypeEntList, itemTypeId, itemTypeIds);
+
+            return itemTypeIds;
+        }
+
+        private void GetChildren(List itemTypeEntList, Guid itemTypeId, List itemTypeIds)
+        {
+            itemTypeIds.Add(itemTypeId);
+            var entlist = itemTypeEntList.Where(m => m.ParentId == itemTypeId).ToList();
+            if (entlist.Count > 0)
+            {
+                foreach (var ent in entlist)
+                {
+                    GetChildren(itemTypeEntList, ent.ItemTypeId, itemTypeIds);
+                }
+            }
+        }
     }
 }
diff --git a/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs b/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
index 0361aca..b3de4ce 100644
--- a/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
+++ b/src/Shentun.WebPeis.Application/QuestionAnswers/QuestionAnswerAppService.cs
@@ -207,7 +207,7 @@ namespace Shentun.WebPeis.QuestionAnswers
             {
                 foreach (var diseaseRiskLevelId in input.DiseaseRiskLevelIds)
                 {
-                    var isQuestionAnswer = await _questionAnswerRiskLevelRepository.FirstOrDefaultAsync(f => f.DiseaseRiskLevelId == diseaseRiskLevelId && 
+                    var isQuestionAnswer = await _questionAnswerRiskLevelRepository.FirstOrDefaultAsync(f => f.DiseaseRiskLevelId == diseaseRiskLevelId &&
                     f.QuestionAnswerId == input.QuestionAnswerId);
                     if (isQuestionAnswer == null)
                     {
@@ -238,14 +238,16 @@ namespace Shentun.WebPeis.QuestionAnswers
                         {
                             questionAnswerRiskLevel.QuestionAnswerId,
                             diseaseRiskLevel.DiseaseRiskLevelId,
-                            diseaseRiskLevel.DiseaseRiskLevelName
+                            diseaseRiskLevel.DiseaseRiskLevelName,
+                            diseaseRiskLevel.DiseaseRiskId
                         };
 
             var entListDto = query.Select(s => new QuestionAnswerRiskLevelDto
             {
                 DiseaseRiskLevelId = s.DiseaseRiskLevelId,
                 QuestionAnswerId = s.QuestionAnswerId,
-                DiseaseRiskLevelName = s.DiseaseRiskLevelName
+                DiseaseRiskLevelName = s.DiseaseRiskLevelName,
+                DiseaseRiskId = s.DiseaseRiskId
             }).ToList();
 
             return entListDto;
diff --git a/src/Shentun.WebPeis.Domain/Models/Asbitem.cs b/src/Shentun.WebPeis.Domain/Models/Asbitem.cs
index 190a2bb..301b701 100644
--- a/src/Shentun.WebPeis.Domain/Models/Asbitem.cs
+++ b/src/Shentun.WebPeis.Domain/Models/Asbitem.cs
@@ -109,7 +109,7 @@ public partial class Asbitem:AuditedEntity, IHasConcurrencyStamp
     /// 
 
     public char? IsWebAppoint { get; set; }
-    public string? SimpleCode { get; set; }
+    public string SimpleCode { get; set; }
 
     public int DisplayOrder { get; set; }