diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java
index 3e9a651d..f6db2f2c 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/controller/config/AncillaryItemManageController.java
@@ -1,16 +1,18 @@
 package com.supervision.manage.controller.config;
 
 
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.supervision.manage.service.AncillaryItemManageService;
+import com.supervision.model.ConfigAncillaryItem;
 import com.supervision.vo.ask.AncillaryItemReqVo;
 import com.supervision.vo.ask.ConfigAncillaryItemResVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Api(tags = "辅助检查项管理")
@@ -20,9 +22,35 @@ import java.util.List;
 public class AncillaryItemManageController {
 
     private final AncillaryItemManageService ancillaryItemManageService;
+
     @ApiOperation("查询辅助检查项目列表")
     @GetMapping("queryAncillaryItemList")
     public List<ConfigAncillaryItemResVO> queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo) {
         return ancillaryItemManageService.queryAncillaryItemList(ancillaryItemReqVo);
     }
+
+    @ApiOperation("分页查询辅助检查")
+    @GetMapping("queryAncillaryPage")
+    public IPage<ConfigAncillaryItem> queryAncillaryPage(String name, String type, Integer pageNum, Integer pageSize) {
+        return ancillaryItemManageService.queryAncillaryPage(name, type, pageNum, pageSize);
+    }
+
+    @ApiOperation("保存辅助检查项")
+    @PostMapping("saveAncillaryItem")
+    public void saveAncillaryItem(@RequestBody ConfigAncillaryItem configAncillaryItem) {
+        ancillaryItemManageService.saveAncillaryItem(configAncillaryItem);
+    }
+
+    @ApiOperation("修改辅助检查项")
+    @PostMapping("modifyAncillaryItem")
+    public void modifyAncillaryItem(@RequestBody ConfigAncillaryItem configAncillaryItem) {
+        ancillaryItemManageService.modifyAncillaryItem(configAncillaryItem);
+    }
+
+    @ApiOperation("删除辅助检查项")
+    @GetMapping("deleteAncillaryItem")
+    public void deleteAncillaryItem(String id){
+        ancillaryItemManageService.deleteAncillaryItem(id);
+    }
+
 }
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java
index 9c27aa65..1bfe011d 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/AncillaryItemManageService.java
@@ -1,11 +1,22 @@
 package com.supervision.manage.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.supervision.model.ConfigAncillaryItem;
 import com.supervision.vo.ask.AncillaryItemReqVo;
 import com.supervision.vo.ask.ConfigAncillaryItemResVO;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
 public interface AncillaryItemManageService {
 
     List<ConfigAncillaryItemResVO> queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo);
+
+    IPage<ConfigAncillaryItem> queryAncillaryPage(String name, String type, Integer pageNum, Integer pageSize);
+
+    void saveAncillaryItem(ConfigAncillaryItem configAncillaryItem);
+
+    void modifyAncillaryItem(ConfigAncillaryItem configAncillaryItem);
+
+    void deleteAncillaryItem(String id);
 }
diff --git a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java
index 2ac56a7f..8dfda5c8 100644
--- a/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java
+++ b/virtual-patient-manage/src/main/java/com/supervision/manage/service/impl/AncillaryItemManageServiceImpl.java
@@ -1,9 +1,16 @@
 package com.supervision.manage.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.supervision.exception.BusinessException;
 import com.supervision.manage.service.AncillaryItemManageService;
+import com.supervision.model.CommonDic;
+import com.supervision.model.ConfigAncillaryItem;
 import com.supervision.model.DiseaseAncillary;
+import com.supervision.service.CommonDicService;
 import com.supervision.service.ConfigAncillaryItemService;
 import com.supervision.service.DiseaseAncillaryService;
 import com.supervision.vo.ask.AncillaryItemReqVo;
@@ -15,15 +22,93 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
+import static cn.hutool.core.util.NumberUtil.add;
+import static cn.hutool.core.util.NumberUtil.isValid;
+
 @Service
 @RequiredArgsConstructor
 public class AncillaryItemManageServiceImpl implements AncillaryItemManageService {
 
     private final ConfigAncillaryItemService configAncillaryItemService;
+
+    private final CommonDicService commonDicService;
+
+    private final DiseaseAncillaryService diseaseAncillaryService;
+
     @Override
     public List<ConfigAncillaryItemResVO> queryAncillaryItemList(AncillaryItemReqVo ancillaryItemReqVo) {
         return configAncillaryItemService.queryAncillaryItemList(ancillaryItemReqVo);
     }
+
+    @Override
+    public IPage<ConfigAncillaryItem> queryAncillaryPage(String name, String type, Integer pageNum, Integer pageSize) {
+        return configAncillaryItemService.lambdaQuery().like(StrUtil.isNotBlank(name), ConfigAncillaryItem::getItemName, name)
+                .eq(StrUtil.isNotBlank(type), ConfigAncillaryItem::getType, type)
+                .orderByAsc(ConfigAncillaryItem::getItemPriority)
+                .orderByDesc(ConfigAncillaryItem::getUpdateTime)
+                .page(new Page<>(pageNum, pageSize));
+    }
+
+
+    @Override
+    public void saveAncillaryItem(ConfigAncillaryItem configAncillaryItem) {
+        Assert.notBlank(configAncillaryItem.getType(), () -> new BusinessException("类型不能为空"));
+        Assert.notBlank(configAncillaryItem.getItemName(), () -> new BusinessException("中文名不能为空"));
+        Assert.notBlank(configAncillaryItem.getItemNameEn(), () -> new BusinessException("英文名不能为空"));
+        if (0 > configAncillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getType, configAncillaryItem.getType())
+                .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemName()).count()) {
+            throw new BusinessException("中文名已存在,请重新输入");
+        }
+        if (0 > configAncillaryItemService.lambdaQuery().eq(ConfigAncillaryItem::getType, configAncillaryItem.getType())
+                .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemNameEn()).count()) {
+            throw new BusinessException("英文名名已存在,请重新输入");
+        }
+        CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getNameZh, configAncillaryItem.getItemName())
+                .eq(CommonDic::getGroupCode, "ANCILLARY_ITEM_PRIORITY").last("limit 1").one();
+        Assert.notNull(one, () -> new BusinessException("检查项类型不正确"));
+        configAncillaryItem.setTypePriority(Integer.valueOf(one.getCode()));
+        configAncillaryItemService.save(configAncillaryItem);
+    }
+
+    @Override
+    public void modifyAncillaryItem(ConfigAncillaryItem configAncillaryItem) {
+        Assert.notBlank(configAncillaryItem.getId(), () -> new BusinessException("ID不能为空"));
+        Assert.notBlank(configAncillaryItem.getType(), () -> new BusinessException("类型不能为空"));
+        Assert.notBlank(configAncillaryItem.getItemName(), () -> new BusinessException("中文名不能为空"));
+        Assert.notBlank(configAncillaryItem.getItemNameEn(), () -> new BusinessException("英文名不能为空"));
+        // 首先找到原先的
+        ConfigAncillaryItem old = Optional.ofNullable(configAncillaryItemService.getById(configAncillaryItem.getId())).orElseThrow(() -> new BusinessException("未找到数据"));
+
+        if (0 > configAncillaryItemService.lambdaQuery()
+                .ne(ConfigAncillaryItem::getId, configAncillaryItem.getId())
+                .eq(ConfigAncillaryItem::getType, configAncillaryItem.getType())
+                .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemName()).count()) {
+            throw new BusinessException("中文名已存在,请重新输入");
+        }
+        if (0 > configAncillaryItemService.lambdaQuery()
+                .ne(ConfigAncillaryItem::getId, configAncillaryItem.getId())
+                .eq(ConfigAncillaryItem::getType, configAncillaryItem.getType())
+                .eq(ConfigAncillaryItem::getItemName, configAncillaryItem.getItemNameEn()).count()) {
+            throw new BusinessException("英文名名已存在,请重新输入");
+        }
+        if (!StrUtil.equals(configAncillaryItem.getType(), old.getType())) {
+            CommonDic one = commonDicService.lambdaQuery().eq(CommonDic::getNameZh, configAncillaryItem.getItemName())
+                    .eq(CommonDic::getGroupCode, "ANCILLARY_ITEM_PRIORITY").last("limit 1").one();
+            Assert.notNull(one, () -> new BusinessException("检查项类型不正确"));
+            configAncillaryItem.setTypePriority(Integer.valueOf(one.getCode()));
+        }
+        configAncillaryItemService.saveOrUpdate(configAncillaryItem);
+    }
+
+    @Override
+    public void deleteAncillaryItem(String id) {
+        // 首先检查辅助检查项是否被使用
+        if (0 > diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getItemId, id).count()){
+            throw new BusinessException("辅助检查项已被使用,无法删除");
+        }
+        configAncillaryItemService.removeById(id);
+    }
 }