Browse Source

新增检查检验的接口可以一起保存,新增查询的字段

xiaochan 3 months ago
parent
commit
a222749344
19 changed files with 617 additions and 16 deletions
  1. 44 0
      src/main/java/thyyxxk/webserver/controller/dictionary/diagnoseReqTemplate/DiagnoseReqTemplateController.java
  2. 17 3
      src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/JianYanJianChaController.java
  3. 11 0
      src/main/java/thyyxxk/webserver/dao/his/dictionary/diagnoseReqTemplate/DiagnoseReqTemplateDao.java
  4. 9 0
      src/main/java/thyyxxk/webserver/dao/his/dictionary/diagnoseReqTemplate/DiagnoseTemplateDao.java
  5. 75 0
      src/main/java/thyyxxk/webserver/dao/his/dictionary/diagnoseReqTemplate/DiagnoseToReqDao.java
  6. 22 8
      src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/JianYanJianChaDao.java
  7. 40 0
      src/main/java/thyyxxk/webserver/entity/dictionary/CyComboGrid.java
  8. 68 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/data/DiagnoseReqTemplate.java
  9. 52 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/data/DiagnoseTemplate.java
  10. 76 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/data/DiagnoseToReq.java
  11. 12 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/req/ReqTemplateReq.java
  12. 14 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/vo/DiagnoseReqTemplateVo.java
  13. 18 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/vo/DiagnoseTemplateContent.java
  14. 12 0
      src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/vo/DiagnoseToReqVo.java
  15. 4 0
      src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/JyJcItem.java
  16. 1 0
      src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/dto/JyJcCheckItemDto.java
  17. 11 0
      src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/vo/JcJyPartOrSample.java
  18. 120 0
      src/main/java/thyyxxk/webserver/service/dictionary/diagnoseReqTemplate/DiagnoseReqTemplateService.java
  19. 11 5
      src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/JianYanJianChaShenQingService.java

+ 44 - 0
src/main/java/thyyxxk/webserver/controller/dictionary/diagnoseReqTemplate/DiagnoseReqTemplateController.java

@@ -0,0 +1,44 @@
+package thyyxxk.webserver.controller.dictionary.diagnoseReqTemplate;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.req.ReqTemplateReq;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo.DiagnoseTemplateContent;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo.DiagnoseToReqVo;
+import thyyxxk.webserver.service.dictionary.diagnoseReqTemplate.DiagnoseReqTemplateService;
+
+
+@RequestMapping("/diagnoseJyJcReqTemplate")
+@RestController
+@RequiredArgsConstructor
+public class DiagnoseReqTemplateController {
+    private final DiagnoseReqTemplateService service;
+
+    @PostMapping("/getDiagnoseReqTemplateList")
+    public ResultVo<Page<DiagnoseToReqVo>> getDiagnoseReqTemplateList(@RequestBody ReqTemplateReq value) {
+        return service.getDiagnoseReqTemplateList(value);
+    }
+
+    @GetMapping("/createTemplate")
+    public ResultVo<String> createTemplate(@RequestParam("name") String name) {
+        return service.createTemplate(name);
+    }
+
+
+    @GetMapping("/getTemplateContentById")
+    public ResultVo<DiagnoseTemplateContent> getTemplateContentById(@RequestParam("id") String id) {
+        return service.getTemplateContentById(id);
+    }
+
+    @PostMapping("/saveTemplateContent")
+    public ResultVo<String> saveTemplateContent(@RequestBody DiagnoseTemplateContent data) {
+        return service.saveTemplateContent(data);
+    }
+
+    @GetMapping("/delTemplate")
+    public ResultVo<String> delTemplate(@RequestParam("id") String id) {
+        return service.delTemplate(id);
+    }
+}

+ 17 - 3
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/JianYanJianChaController.java

@@ -4,16 +4,21 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.SerializeUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.config.auth.PassToken;
+import thyyxxk.webserver.dao.his.zhuyuanyisheng.JianYanJianChaDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.dictionary.CyComboGrid;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.*;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.JcJyPartOrSample;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.ViewInspectionItemDetailsVo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.query.ChaXunJianChaHeJianYan;
 import thyyxxk.webserver.service.zhuyuanyisheng.JianYanJianChaShenQingService;
 import thyyxxk.webserver.utils.ListUtil;
+import thyyxxk.webserver.utils.R;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -30,12 +35,11 @@ import java.util.Map;
  */
 @RequestMapping(path = {"/jianYanJianChaShenQing", "/checkTheCallbacks"})
 @RestController
+@RequiredArgsConstructor
 public class JianYanJianChaController {
     private final JianYanJianChaShenQingService server;
+    private final JianYanJianChaDao dao;
 
-    public JianYanJianChaController(JianYanJianChaShenQingService server) {
-        this.server = server;
-    }
 
     @PostMapping("/huoQuJianChaShenQing")
     public ResultVo<List<YshYjReq>> huoQuJianChaShenQing(@RequestBody @Validated ChaXunJianChaHeJianYan param) {
@@ -192,4 +196,14 @@ public class JianYanJianChaController {
     public ResultVo<List<GetDropdownBox>> selectBuWeiAll() {
         return server.selectBuWeiAll();
     }
+
+    @GetMapping("/getJySample")
+    public ResultVo<List<JcJyPartOrSample>> getJySample() {
+        return R.ok(dao.getJySample());
+    }
+
+    @GetMapping("/getJcPartCode")
+    public ResultVo<List<JcJyPartOrSample>> getJcPartCode() {
+        return R.ok(dao.getJcPartCode());
+    }
 }

+ 11 - 0
src/main/java/thyyxxk/webserver/dao/his/dictionary/diagnoseReqTemplate/DiagnoseReqTemplateDao.java

@@ -0,0 +1,11 @@
+package thyyxxk.webserver.dao.his.dictionary.diagnoseReqTemplate;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseReqTemplate;
+
+@Mapper
+public interface DiagnoseReqTemplateDao extends BaseMapper<DiagnoseReqTemplate> {
+
+
+}

+ 9 - 0
src/main/java/thyyxxk/webserver/dao/his/dictionary/diagnoseReqTemplate/DiagnoseTemplateDao.java

@@ -0,0 +1,9 @@
+package thyyxxk.webserver.dao.his.dictionary.diagnoseReqTemplate;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseTemplate;
+
+@Mapper
+public interface DiagnoseTemplateDao extends BaseMapper<DiagnoseTemplate> {
+}

+ 75 - 0
src/main/java/thyyxxk/webserver/dao/his/dictionary/diagnoseReqTemplate/DiagnoseToReqDao.java

@@ -0,0 +1,75 @@
+package thyyxxk.webserver.dao.his.dictionary.diagnoseReqTemplate;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseTemplate;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseToReq;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo.DiagnoseReqTemplateVo;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo.DiagnoseToReqVo;
+
+import java.util.List;
+
+@Mapper
+public interface DiagnoseToReqDao extends BaseMapper<DiagnoseToReq> {
+
+
+    @Select("select *,create_name = (select rtrim(name) from a_employee_mi where code = diagnose_to_req.create_code)," +
+            "  update_name = (select rtrim(name) from a_employee_mi where code = diagnose_to_req.update_code) " +
+            "from diagnose_to_req ${ew.customSqlSegment} ")
+    Page<DiagnoseToReqVo> selectTemplateList(Page<DiagnoseToReq> page, @Param("ew") Wrapper<DiagnoseToReq> queryWrapper);
+
+
+    @Select("select *, diagnose_name = (select name from zd_icd_code_new where code = diagnose_code)\n" +
+            "from diagnose_template\n" +
+            "where template_id = #{id} ")
+    List<DiagnoseTemplate> selectByTemplateId(String id);
+
+    @Select("select a.*,\n" +
+            "       b.name                        as                               order_name,\n" +
+            "       class                         as                               classes,\n" +
+            "       (select name from zd_unit_code zd where zd.code = a.exec_dept) exec_name,\n" +
+            "       (select name\n" +
+            "        from jy_zd_sample\n" +
+            "        where code = part_or_sample) as                               part_or_sample_name\n" +
+            "from diagnose_req_template a\n" +
+            "         inner join\n" +
+            "     jy_zd_item b\n" +
+            "     on (\n" +
+            "            a.order_code = b.code\n" +
+            "            )\n" +
+            "         and isnull(zy_flag, '0') <> '1'\n" +
+            "         and isnull(del_flag, '0') <> '1'\n" +
+            "where template_id = #{id}\n" +
+            "  and req_type = '2'\n" +
+            "union\n" +
+            "    all\n" +
+            "select a.*,\n" +
+            "       b.name                        as                               order_name,\n" +
+            "       class                         as                               classes,\n" +
+            "       (select name from zd_unit_code zd where zd.code = a.exec_dept) exec_name,\n" +
+            "       (select name\n" +
+            "        from ysh_zd_part_code\n" +
+            "        where code = part_or_sample) as                               part_or_sample_name\n" +
+            "from diagnose_req_template a\n" +
+            "         inner join\n" +
+            "     jc_zd_item b\n" +
+            "     on (\n" +
+            "         a.order_code = b.code\n" +
+            "         )\n" +
+            "where template_id = #{id}\n" +
+            "  and req_type = '3'\n" +
+            "  and isnull(zy_flag, '0') <> '1'\n" +
+            "  and isnull(del_flag, '0') <> '1';")
+    List<DiagnoseReqTemplateVo> selectReqByTemplateId(String id);
+
+
+    @Delete("delete from diagnose_template where template_id = #{id};" +
+            "delete from diagnose_req_template where template_id = #{id};")
+    void delDiagnoseByTemplateId(String id);
+
+}

+ 22 - 8
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/JianYanJianChaDao.java

@@ -6,10 +6,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.*;
+import thyyxxk.webserver.entity.CodeName;
 import thyyxxk.webserver.entity.casefrontsheet.YshHzRecord;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.dictionary.CyComboGrid;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.dto.JyJcCheckItemDto;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.JcJyPartOrSample;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.ViewInspectionItemDetailsVo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp;
 
@@ -315,7 +318,7 @@ public interface JianYanJianChaDao {
             "<foreach collection='list' item='item' separator=','>" +
             "(#{item.reqNo}, #{inpatientNo}, #{name}, #{age}, #{admissTimes}, #{bedNo}, #{item.orderName}, " +
             "        #{item.actOrderNo}, #{item.orderCode}, cast(#{item.orderName} as varchar(60)) , #{item.reqNo}, #{item.reqComment}, #{userCode}, " +
-            "        #{deptCode}, #{wardCode}, #{item.execDept}, #{reqDate}, '1', #{reqType}, #{reqDate}, #{reqDate},#{item.diagCode},#{item.diagText}, " +
+            "        #{deptCode}, #{wardCode}, #{item.execDept}, #{reqDate}, '1', #{item.reqType}, #{reqDate}, #{reqDate},#{item.diagCode},#{item.diagText}, " +
             "        (select class from ${orderTypeTable} where zy_order_code = #{item.orderCode})," +
             "       #{item.jzFlag},#{item.reqTzComment},#{item.reqOtherResult}," +
             "       #{item.inspectStuff}, #{item.inspectPart},#{item.quantity},#{item.chargeFee})" +
@@ -330,7 +333,6 @@ public interface JianYanJianChaDao {
                        @Param("userCode") String userCode,
                        @Param("deptCode") String deptCode,
                        @Param("wardCode") String wardCode,
-                       @Param("reqType") String reqType,
                        @Param("orderTypeTable") String orderTypeTable,
                        @Param("reqDate") Date reqDate);
 
@@ -397,6 +399,14 @@ public interface JianYanJianChaDao {
             "    or code like #{name} or d_code like #{name} )")
     List<GetDropdownBox> biaoBenOrBuWei(String name, String tableName);
 
+    @Select("select rtrim(code) as code,rtrim(name) as name,py_code,d_code as wb_code from jy_zd_sample with (NOLOCK) " +
+            "where isnull(del_flag, '0') = '0'")
+    List<JcJyPartOrSample> getJySample();
+
+
+    @Select("select rtrim(code) as code,rtrim(name) as name,py_code,d_code as wb_code,parent_code from ysh_zd_part_code with (NOLOCK) " +
+            "where isnull(del_flag, '0') = '0'")
+    List<JcJyPartOrSample> getJcPartCode();
 
     @Select("select * " +
             "from ysh_yj_req with (NOLOCK) where req_no = #{reqNo} and inpatient_no = #{patNo} and admiss_times = #{times}")
@@ -501,10 +511,10 @@ public interface JianYanJianChaDao {
             "                       min_age_restriction,\n" +
             "                       max_age_restriction,\n" +
             "                       rtrim(a.py_code)                as py_code,\n" +
-            "                       rtrim(a.d_code)                 as d_code\n" +
+            "                       rtrim(a.d_code)                 as d_code,a.code as id " +
             "from jy_zd_item a\n" +
             "         left join yz_order_item b on (a.zy_order_code = b.order_code)\n" +
-            "where isnull(a.del_flag, '0') != '1'\n" +
+            "where isnull(a.del_flag, '0') != '1' and isnull(a.zy_flag, '0') != '1' " +
             "  and isnull(b.del_flag, '0') <> '1'")
     List<JyJcItem> getJyDetailedItems();
 
@@ -513,9 +523,9 @@ public interface JianYanJianChaDao {
     List<JyJcItem> queryCheckClassification();
 
 
-    @Select("select a.zy_order_code as code, " +
-            "       isnull(b.name,'') as bw, " +
-            "       a.name, " +
+    @Select("select a.zy_order_code as code,a.code as id, " +
+            "       isnull(b.name,'') as bw,bw_code as part_code, rtrim(b.name) as part_name," +
+            "       rtrim(a.name) name, " +
             "       rtrim(class)  as classes, " +
             "       exec_unit," +
             "       exec_unit_name = (select name from zd_unit_code where zd_unit_code.code = exec_unit)," +
@@ -568,7 +578,11 @@ public interface JianYanJianChaDao {
             " rtrim(name) as name," +
             " cast(rtrim(isnull(nullif(del_flag,\n" +
             "                                ''),\n" +
-            "                         0)) as int) as del_flag ${col}  " +
+            "                         0)) as int) as del_flag," +
+            " cast(rtrim(isnull(nullif(zy_flag,\n" +
+            "                                ''),\n" +
+            "                         0)) as int) as zy_flag  " +
+            " ${col}  " +
             " from ${tableName} \n" +
             " where ${ew.sqlSegment};")
     List<JyJcCheckItemDto> selectJyJcCheckItemDtoByOrderCode(@Param("ew") QueryWrapper<?> queryWrapper,

+ 40 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/CyComboGrid.java

@@ -0,0 +1,40 @@
+package thyyxxk.webserver.entity.dictionary;
+
+
+public class CyComboGrid {
+    private String code;
+    private String name;
+    private String pyCode;
+    private String wbCode;
+
+
+    public String getPyCode() {
+        return trim(pyCode);
+    }
+
+    public String getWbCode() {
+        return trim(wbCode);
+    }
+
+    public String getCode() {
+        return trim(code);
+    }
+
+    public String getName() {
+        return trim(name);
+    }
+
+    public String getValue() {
+        return getCode();
+    }
+
+    public String getLabel() {
+        return getName();
+    }
+
+
+    private String trim(String value) {
+        return value != null ? value.trim() : null;
+    }
+
+}

+ 68 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/data/DiagnoseReqTemplate.java

@@ -0,0 +1,68 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.NoArgsConstructor;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "diagnose_req_template")
+public class DiagnoseReqTemplate implements Serializable {
+
+    private static final long serialVersionUID = 6658067715225113856L;
+
+    /**
+     * id
+     */
+    @TableId
+    private String id;
+
+    /**
+     * orderCode
+     */
+    @TableField(value = "order_code")
+    private String orderCode;
+
+
+    /**
+     * 2-检验 -3检查
+     */
+    @TableField(value = "req_type")
+    private Integer reqType;
+
+    /**
+     * 执行科室
+     */
+    @TableField(value = "exec_dept")
+    private String execDept;
+
+    /**
+     * 部位或者标本
+     */
+    @TableField(value = "part_or_sample")
+    private String partOrSample;
+
+    /**
+     * 对应的是 diagnose_to_req 的id
+     */
+    @TableField(value = "template_id")
+    private String templateId;
+
+    public static LambdaQueryWrapper<DiagnoseReqTemplate> lambdaQueryWrapper() {
+        return new LambdaQueryWrapper<>();
+    }
+
+    public static QueryWrapper<DiagnoseReqTemplate> queryWrapper() {
+        return new QueryWrapper<>();
+    }
+
+
+}

+ 52 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/data/DiagnoseTemplate.java

@@ -0,0 +1,52 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.NoArgsConstructor;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "diagnose_template")
+public class DiagnoseTemplate implements Serializable {
+
+    private static final long serialVersionUID = 3262999528426424777L;
+
+    /**
+     * id
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 诊断编码
+     */
+    @TableField(value = "diagnose_code")
+    private String diagnoseCode;
+
+    /**
+     * 对应的是 diagnose_to_req 的id
+     */
+    @TableField(value = "template_id")
+    private String templateId;
+
+    @TableField(exist = false)
+    private String diagnoseName;
+
+    public static LambdaQueryWrapper<DiagnoseTemplate> lambdaQueryWrapper() {
+        return new LambdaQueryWrapper<>();
+    }
+
+    public static QueryWrapper<DiagnoseTemplate> queryWrapper() {
+        return new QueryWrapper<>();
+    }
+
+
+}

+ 76 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/data/DiagnoseToReq.java

@@ -0,0 +1,76 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName(value = "diagnose_to_req")
+public class DiagnoseToReq implements Serializable {
+
+    private static final long serialVersionUID = 4923266751501627866L;
+
+    /**
+     * 诊断的编码,主键
+     */
+    @TableId
+    private String id;
+
+    /**
+     * name
+     */
+    @TableField(value = "name")
+    private String name;
+
+    /**
+     * 创建人
+     */
+    @TableField(fill = FieldFill.INSERT, value = "create_code")
+    private String createCode;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT, value = "create_time")
+    private Date createTime;
+
+    /**
+     * updateCode
+     */
+    @TableField(fill = FieldFill.UPDATE, value = "update_code")
+    private String updateCode;
+
+    /**
+     * updateTime
+     */
+    @TableField(fill = FieldFill.UPDATE, value = "update_time")
+    private Date updateTime;
+
+    @TableField(value = "py_code")
+    private String pyCode;
+
+    @TableField(value = "wb_code")
+    private String wbCode;
+
+    public static LambdaQueryWrapper<DiagnoseToReq> lambdaQueryWrapper() {
+        return new LambdaQueryWrapper<>();
+    }
+
+    public static QueryWrapper<DiagnoseToReq> queryWrapper() {
+        return new QueryWrapper<>();
+    }
+
+
+}

+ 12 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/req/ReqTemplateReq.java

@@ -0,0 +1,12 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.req;
+
+import lombok.Data;
+
+@Data
+public class ReqTemplateReq {
+    private Long pageSize;
+    private Long currentPage;
+    private Long total;
+    private String searchValue;
+    private String searchId;
+}

+ 14 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/vo/DiagnoseReqTemplateVo.java

@@ -0,0 +1,14 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo;
+
+import lombok.*;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseReqTemplate;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DiagnoseReqTemplateVo extends DiagnoseReqTemplate {
+    private String orderName;
+    private String execName;
+    private String partOrSampleName;
+    private String classes;
+}

+ 18 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/vo/DiagnoseTemplateContent.java

@@ -0,0 +1,18 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo;
+
+import lombok.Data;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseTemplate;
+
+import java.util.List;
+
+/**
+ * 模板里面的内容
+ */
+@Data
+public class DiagnoseTemplateContent {
+    private String id;
+    // 诊断数据
+    private List<DiagnoseTemplate> diagnoseList;
+    // 请求模板
+    private List<DiagnoseReqTemplateVo> reqTemplates;
+}

+ 12 - 0
src/main/java/thyyxxk/webserver/entity/dictionary/diagnoseReqTemplate/vo/DiagnoseToReqVo.java

@@ -0,0 +1,12 @@
+package thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseToReq;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class DiagnoseToReqVo extends DiagnoseToReq {
+    private String createName;
+    private String updateName;
+}

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/JyJcItem.java

@@ -7,6 +7,8 @@ import java.util.List;
 @Data
 public class JyJcItem {
 
+    // 唯一值
+    private String id;
 
     /**
      * 可能 父节编码
@@ -54,6 +56,8 @@ public class JyJcItem {
     private String maxAgeRestriction;
     private String pyCode;
     private String dCode;
+    private String partCode;
+    private String partName;
 
     /**
      * 子节点

+ 1 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/dto/JyJcCheckItemDto.java

@@ -24,6 +24,7 @@ public class JyJcCheckItemDto {
     private String surchargeName;
 
     private Boolean delFlag;
+    private Boolean zyFlag;
 
     private List<ItemInfo> itemInfoList;
 

+ 11 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/vo/JcJyPartOrSample.java

@@ -0,0 +1,11 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import thyyxxk.webserver.entity.dictionary.CyComboGrid;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class JcJyPartOrSample extends CyComboGrid {
+    private String parentCode;
+}

+ 120 - 0
src/main/java/thyyxxk/webserver/service/dictionary/diagnoseReqTemplate/DiagnoseReqTemplateService.java

@@ -0,0 +1,120 @@
+package thyyxxk.webserver.service.dictionary.diagnoseReqTemplate;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.dao.his.dictionary.diagnoseReqTemplate.DiagnoseReqTemplateDao;
+import thyyxxk.webserver.dao.his.dictionary.diagnoseReqTemplate.DiagnoseTemplateDao;
+import thyyxxk.webserver.dao.his.dictionary.diagnoseReqTemplate.DiagnoseToReqDao;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseReqTemplate;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.data.DiagnoseToReq;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.req.ReqTemplateReq;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo.DiagnoseTemplateContent;
+import thyyxxk.webserver.entity.dictionary.diagnoseReqTemplate.vo.DiagnoseToReqVo;
+import thyyxxk.webserver.utils.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class DiagnoseReqTemplateService {
+    private final DiagnoseReqTemplateDao diagnoseReqTemplateDao;
+    private final DiagnoseTemplateDao diagnoseTemplateDao;
+    private final DiagnoseToReqDao dao;
+
+    public ResultVo<Page<DiagnoseToReqVo>> getDiagnoseReqTemplateList(ReqTemplateReq value) {
+        Page<DiagnoseToReq> selectPage = new Page<>(value.getCurrentPage(), value.getPageSize(), value.getTotal() == 0);
+
+        LambdaQueryWrapper<DiagnoseToReq> eq = new LambdaQueryWrapper<>();
+        if (StrUtil.isNotBlank(value.getSearchId())) {
+            eq.eq(DiagnoseToReq::getId, value.getSearchId());
+        } else {
+            if (StrUtil.isNotBlank(value.getSearchValue())) {
+                eq.like(DiagnoseToReq::getName, value.getSearchValue())
+                        .or()
+                        .like(DiagnoseToReq::getPyCode, value.getSearchValue().toUpperCase())
+                        .or()
+                        .like(DiagnoseToReq::getWbCode, value.getSearchValue().toUpperCase());
+            }
+        }
+        selectPage.addOrder(OrderItem.asc("create_time"));
+        Page<DiagnoseToReqVo> diagnoseToReqVoPage = dao.selectTemplateList(selectPage, eq);
+        if (value.getTotal() != 0) {
+            diagnoseToReqVoPage.setTotal(value.getTotal());
+        }
+        return R.ok(diagnoseToReqVoPage);
+    }
+
+    public ResultVo<String> createTemplate(String name) {
+        if (StrUtil.isBlank(name)) {
+            return R.fail(ExceptionEnum.NULL_POINTER, "名字不能为空。");
+        }
+        DiagnoseToReq build = DiagnoseToReq.builder()
+                .id(SnowFlakeId.instance().nextId())
+                .name(name)
+                .pyCode(PingYinUtils.pyShouZiMuDaXie(name))
+                .wbCode(PingYinUtils.getWBCode(name))
+                .build();
+        dao.insert(build);
+        return R.ok(ExceptionEnum.SUCCESS_AND_EL_MESSAGE, ExceptionEnum.SUCCESS_AND_EL_MESSAGE.getMessage(), build.getId());
+    }
+
+
+    public ResultVo<DiagnoseTemplateContent> getTemplateContentById(String id) {
+        DiagnoseTemplateContent rst = new DiagnoseTemplateContent();
+        rst.setReqTemplates(dao.selectReqByTemplateId(id));
+        rst.setDiagnoseList(dao.selectByTemplateId(id));
+        rst.setId(id);
+        return R.ok(rst);
+    }
+
+
+    public ResultVo<String> saveTemplateContent(DiagnoseTemplateContent data) {
+        DiagnoseToReq build = DiagnoseToReq.builder()
+                .id(data.getId())
+                .updateCode(TokenUtil.getInstance().getTokenUserId())
+                .updateTime(new Date())
+                .build();
+
+        int i = dao.updateById(build);
+        if (i == 0) {
+            return R.fail(ExceptionEnum.LOGICAL_ERROR, "病历已被删除。");
+        }
+        dao.delDiagnoseByTemplateId(data.getId());
+        if (ListUtil.notBlank(data.getDiagnoseList())) {
+            data.getDiagnoseList().forEach(item -> {
+                item.setTemplateId(data.getId());
+                item.setId(SnowFlakeId.instance().nextId());
+            });
+            diagnoseTemplateDao.insert(data.getDiagnoseList());
+        }
+
+        if (ListUtil.notBlank(data.getReqTemplates())) {
+            List<DiagnoseReqTemplate> tmp = new ArrayList<>();
+            data.getReqTemplates().forEach(item -> {
+                item.setTemplateId(data.getId());
+                item.setId(SnowFlakeId.instance().nextId());
+                tmp.add(item);
+            });
+            diagnoseReqTemplateDao.insert(tmp);
+        }
+        return R.ok(ExceptionEnum.SUCCESS_AND_EL_MESSAGE);
+    }
+
+    public ResultVo<String> delTemplate(String id) {
+        dao.deleteById(id);
+        dao.delDiagnoseByTemplateId(id);
+        return R.ok(ExceptionEnum.SUCCESS_AND_EL_MESSAGE);
+    }
+
+}

+ 11 - 5
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/JianYanJianChaShenQingService.java

@@ -20,8 +20,10 @@ import thyyxxk.webserver.constants.Message;
 import thyyxxk.webserver.dao.his.zhuyuanyisheng.CheckTheCallbackDao;
 import thyyxxk.webserver.dao.his.zhuyuanyisheng.JianYanJianChaDao;
 import thyyxxk.webserver.dao.his.zhuyuanyisheng.YiZhuLuRuDao;
+import thyyxxk.webserver.entity.CodeName;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.dictionary.CyComboGrid;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.dto.JyJcCheckItemDto;
@@ -469,9 +471,12 @@ public class JianYanJianChaShenQingService {
         Map<String, Integer> itemCount = new HashMap<>();
 
         for (YshYjReq item : param.getList()) {
-            boolean isCheck = JC_TYPE.equals(param.getReqType());
+            boolean isCheck = item.getReqType() != null && item.getReqType().trim().equals(JC_TYPE);
             item.setForeachIndex(index);
-            item.setReqType(param.getReqType());
+
+            if (StrUtil.isBlank(item.getReqType())) {
+                cuoWuXinXi.append(baoCunCuoWuXinXi(index, "项目类型不能为空,请刷新页面。"));
+            }
 
             if (item.getQuantity() == null) {
                 item.setQuantity(BigDecimal.ONE);
@@ -510,7 +515,6 @@ public class JianYanJianChaShenQingService {
                 if (StringUtil.isBlank(item.getDiagCode())) {
                     cuoWuXinXi.append(baoCunCuoWuXinXi(index, "临床诊断不能为空。"));
                 }
-
             } else {
                 if (StringUtil.isBlank(item.getInspectStuff())) {
                     cuoWuXinXi.append(baoCunCuoWuXinXi(index, "标本不能为空。"));
@@ -570,6 +574,10 @@ public class JianYanJianChaShenQingService {
                 cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "项目已停用:【" + itemInfo.getName() + "】"));
             }
 
+            if (itemInfo.getZyFlag()) {
+                cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "项目在住院已停用:【" + itemInfo.getName() + "】"));
+            }
+
             if (itemInfo.getLimitTimes() != null && itemInfo.getLimitTimes() > 0) {
                 Integer merge = itemCount.merge(item.getOrderCode(), 1, Integer::sum);
                 if (merge > itemInfo.getLimitTimes()) {
@@ -698,10 +706,8 @@ public class JianYanJianChaShenQingService {
                 param.getAdmissTimes(),
                 param.getBedNo(),
                 userCode,
-                // 这里是坑爹的反过来的
                 patInfo.getWardCode(),
                 patInfo.getDeptCode(),
-                param.getReqType(),
                 JC_TYPE.equals(param.getReqType()) ? "jc_zd_item" : "jy_zd_item",
                 reqDate);