浏览代码

完成检验检查

xiaochan 3 年之前
父节点
当前提交
9ea03cada7

+ 46 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/JianChaShenQingController.java

@@ -0,0 +1,46 @@
+package thyyxxk.webserver.controller.zhuyuanyizheng;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.*;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.JcZdClass;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.query.ChaXunJianCha;
+import thyyxxk.webserver.service.zhuyuanyisheng.JianChaShenQingServer;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 描述: 检查申请控制器
+ * </p>
+ *
+ * @author xc
+ * @date 2022-02-11 09:09
+ */
+@RequestMapping("/jianChaShenQing")
+@RestController
+public class JianChaShenQingController {
+    private final JianChaShenQingServer server;
+
+    public JianChaShenQingController(JianChaShenQingServer server) {
+        this.server = server;
+    }
+
+    @PostMapping("/huoQuJianChaShenQing")
+    public ResultVo<IPage<YshYjReq>> huoQuJianChaShenQing(@RequestBody ChaXunJianCha param) {
+        return server.huoQuJianChaShenQing(param);
+    }
+
+    @GetMapping("/huoQuShengQingXiangQing")
+    public ResultVo<Map<String, Object>> huoQuShengQingXiangQing(@RequestParam("reqNo") Integer reqNo) {
+        return server.huoQuShengQingXiangQing(reqNo);
+    }
+
+    @GetMapping("/huoQuJianChaMing")
+    public ResultVo<IPage<JcZdClass>> huoQuJianChaMing(@RequestParam("total") long total,
+                                                       @RequestParam("currentPage") long currentPage) {
+        return server.huoQuJianChaMing(total, currentPage);
+    }
+
+}

+ 0 - 41
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/JianChaShenQing.java

@@ -1,41 +0,0 @@
-package thyyxxk.webserver.dao.his.zhuyuanyisheng;
-
-import org.apache.ibatis.annotations.Select;
-import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.JcZdClass;
-
-import java.util.List;
-
-/**
- * <p>
- * 描述: 检查申请
- * </p>
- *
- * @author xc
- * @date 2022-02-10 15:42
- */
-public interface JianChaShenQing {
-
-    @Select("SELECT code    =a.code, " +
-            "       name    = isnull(d.name + '(' + rtrim(a.name) + ')', rtrim(a.name)), " +
-            "       bw_code=isnull(d.code, 0), " +
-            "       comment1=max(a.comment1), " +
-            "       comment2=max(a.comment2), " +
-            "       comment3=max(a.comment3), " +
-            "       comment4=max(a.comment4), " +
-            "       comment5=max(a.comment5), " +
-            "       comment6=max(a.comment6), " +
-            "       comment7=max(a.comment7), " +
-            "       comment8=max(a.comment8) " +
-            "FROM jc_zd_class a, " +
-            "     yz_order_item b, " +
-            "     jc_zd_item c, " +
-            "     ysh_zd_part_code d " +
-            "where a.code = b.order_type " +
-            "          and isnull(b.del_flag, '') <> '1' " +
-            "          and c.bw_code *= d.code " +
-            "          and a.code = c.class " +
-            "group by a.name, d.code, d.name, a.code " +
-            "order by a.code")
-    List<JcZdClass> jianChaZu();
-
-}

+ 109 - 0
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/JianChaShenQingDao.java

@@ -0,0 +1,109 @@
+package thyyxxk.webserver.dao.his.zhuyuanyisheng;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.JcZdClass;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
+import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 描述: 检查申请
+ * </p>
+ *
+ * @author xc
+ * @date 2022-02-10 15:42
+ */
+@Mapper
+public interface JianChaShenQingDao {
+
+
+    @Select("<script>" +
+            "select order_name,req_no,act_order_no, start_time " +
+            "from ysh_yj_req " +
+            "where inpatient_no = #{patNo}" +
+            "  and admiss_times = #{times} " +
+            "  and req_type = '3' " +
+            "<if test=\" orderName != null and orderName != '' \">" +
+            " and order_name like #{orderName} " +
+            "</if>" +
+            "</script>")
+    IPage<YshYjReq> huoQuJianChaShenQing(IPage<YshYjReq> page,
+                                         @Param("patNo") String patNo,
+                                         @Param("times") String times,
+                                         @Param("orderName") String orderName);
+
+
+    @Select("select *, " +
+            "       req_dept_name   = (select rtrim(name) from zd_unit_code where code = req_dept), " +
+            "       req_doctor_name = (select rtrim(name) from a_employee_mi where code = req_doctor) " +
+            "from ysh_yj_req " +
+            "where req_no = #{reqNo}")
+    YshYjReq huoQuShengQingXiangQing(@Param("reqNo") Integer reqNo);
+
+    @Select("select sex, " +
+            "       home_street," +
+            "       home_tel " +
+            "from a_patient_mi " +
+            "where inpatient_no = #{patNo}")
+    PatientTemp huoQuHuanZheXinXi(@Param("patNo") String patNo);
+
+    @Select("select responce_type_name = (select rtrim(name) from zy_zd_responce_type where code = responce_type) " +
+            "from zy_actpatient " +
+            "where inpatient_no = #{patNo}")
+    String huoQuHuanZheShenFen(@Param("patNo") String patNo);
+
+    @Select("select rtrim(comm) comm, " +
+            "       comment1, " +
+            "       comment2, " +
+            "       comment3, " +
+            "       comment4, " +
+            "       comment5, " +
+            "       comment6, " +
+            "       comment7, " +
+            "       comment8 " +
+            "from jc_zd_class " +
+            "where code = #{code}")
+    JcZdClass daYingXiangQing(@Param("code") String code);
+
+
+    @Select("select top 20 * " +
+            "from ( " +
+            "         SELECT       ROW_NUMBER() over (order by a.code ) rowIndex, " +
+            "             code   = rtrim(a.code), " +
+            "             name   = isnull(d.name + '(' + rtrim(a.name) + ')', rtrim(a.name)), " +
+            "             bw_code= isnull(d.code, 0) " +
+            "         FROM jc_zd_class a with (NOLOCK), " +
+            "              yz_order_item b with (NOLOCK), " +
+            "              jc_zd_item c with (NOLOCK), " +
+            "              ysh_zd_part_code d with (NOLOCK) " +
+            "         where a.code = b.order_type " +
+            "                   and isnull(b.del_flag, '') <> '1' " +
+            "                   and c.bw_code *= d.code " +
+            "                   and a.code = c.class " +
+            "         group by a.name, d.code, d.name, a.code " +
+            "     ) temp " +
+            "where rowIndex > (${currentPage} - 1) * 20")
+    List<JcZdClass> jianChaMing(long currentPage);
+
+
+    @Select("select count(*) " +
+            "from ( " +
+            "         SELECT a.name, d.code, d.name d_name, a.code a_code " +
+            "         FROM jc_zd_class a with (NOLOCK), " +
+            "              yz_order_item b with (NOLOCK), " +
+            "              jc_zd_item c with (NOLOCK), " +
+            "              ysh_zd_part_code d with (NOLOCK) " +
+            "         where a.code = b.order_type " +
+            "                   and isnull(b.del_flag, '') <> '1' " +
+            "                   and c.bw_code *= d.code " +
+            "                   and a.code = c.class " +
+            "         group by a.name, d.code, d.name, a.code " +
+            "     ) temp")
+    long jianChaMingTiaoShu();
+
+}

+ 211 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/YshYjReq.java

@@ -0,0 +1,211 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class YshYjReq implements Serializable {
+
+    private static final long serialVersionUID = 6282811881852469738L;
+
+    /**
+     * 申请号 唯一 id
+     */
+    private Integer reqNo;
+
+    /**
+     * inpatientNo
+     */
+    private String inpatientNo;
+
+    /**
+     * pName
+     */
+    private String pName;
+
+    /**
+     * pAge
+     */
+    private String pAge;
+
+    /**
+     * admissTimes
+     */
+    private Integer admissTimes;
+
+    /**
+     * bedNo
+     */
+    private String bedNo;
+
+    /**
+     * pBarCode
+     */
+    private String pBarCode;
+
+    /**
+     * 项目名称
+     */
+    private String groupName;
+
+    /**
+     * actOrderNo
+     */
+    private Integer actOrderNo;
+
+    /**
+     * orderCode
+     */
+    private String orderCode;
+
+    /**
+     * 项目名称
+     */
+    private String orderName;
+
+    /**
+     * pageNo
+     */
+    private String pageNo;
+
+    /**
+     * 病史摘要 125个字
+     */
+    private String reqComment;
+
+    /**
+     * 申请医生
+     */
+    private String reqDoctor;
+    private String reqDoctorName;
+
+    /**
+     * 申请科室
+     */
+    private String reqDept;
+    private String reqDeptName;
+
+    /**
+     * reqWard
+     */
+    private String reqWard;
+
+    /**
+     * execDept
+     */
+    private String execDept;
+
+    /**
+     * reqDate
+     */
+    private Date reqDate;
+
+    /**
+     * inspectPart
+     */
+    private String inspectPart;
+
+    /**
+     * inspectStuff
+     */
+    private String inspectStuff;
+
+    /**
+     * sampleStatus
+     */
+    private String sampleStatus;
+
+    /**
+     * printFlag
+     */
+    private String printFlag;
+
+    /**
+     * receiveFlag
+     */
+    private String receiveFlag;
+
+    /**
+     * reqType
+     */
+    private String reqType;
+
+    /**
+     * 体征信息  125 个字
+     */
+    private String resultComment;
+
+    /**
+     * sysDate
+     */
+    private Date sysDate;
+
+    /**
+     * startTime
+     */
+    private Date startTime;
+
+    /**
+     * diagText
+     */
+    private String diagText;
+
+    /**
+     * orderType
+     */
+    private String orderType;
+
+    /**
+     * reportNo
+     */
+    private String reportNo;
+
+    /**
+     * jzFlag
+     */
+    private String jzFlag;
+
+    /**
+     * reqStudyid
+     */
+    private String reqStudyid;
+
+    /**
+     * reqTzComment
+     */
+    private String reqTzComment;
+
+    /**
+     * 相关辅检结果 125个字
+     */
+    private String reqOtherResult;
+
+    /**
+     * receiveJc
+     */
+    private String receiveJc;
+
+    /**
+     * 患者性别
+     */
+    private Integer sex;
+
+    /**
+     * 患者居住地址
+     */
+    private String homeStreet;
+
+    /**
+     * 联系电话
+     */
+    private String homeTel;
+
+    /**
+     * 患者身份
+     */
+    private String responceTypeName;
+
+
+}

+ 22 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/jianyanjiancha/query/ChaXunJianCha.java

@@ -0,0 +1,22 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.query;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 描述: 查询检查项目的条件
+ * </p>
+ *
+ * @author xc
+ * @date 2022-02-11 09:54
+ */
+@Data
+public class ChaXunJianCha {
+    private String patNo;
+    private String times;
+    private String orderName;
+
+    private long total;
+    private long currentPage;
+    private long pageSize;
+}

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/yizhuluru/PatientTemp.java

@@ -85,6 +85,10 @@ public class PatientTemp {
     private Integer injuryArea; // 工伤归属地:1-长沙,2-望城,3-省直
     private String responceTypeName;
     private String actIptDays; // 入院时间
+    /**
+     * 患者居住地
+     */
+    private String homeStreet;
 
     /**
      * 是否有出纳

+ 0 - 12
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/JianChaShenQing.java

@@ -1,12 +0,0 @@
-package thyyxxk.webserver.service.zhuyuanyisheng;
-
-/**
- * <p>
- * 描述: 住院医生,检查申请
- * </p>
- *
- * @author xc
- * @date 2022-02-10 15:37
- */
-public class JianChaShenQing {
-}

+ 96 - 0
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/JianChaShenQingServer.java

@@ -0,0 +1,96 @@
+package thyyxxk.webserver.service.zhuyuanyisheng;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.dao.his.zhuyuanyisheng.JianChaShenQingDao;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.JcZdClass;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.YshYjReq;
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.query.ChaXunJianCha;
+import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp;
+import thyyxxk.webserver.utils.EntityStringTrim;
+import thyyxxk.webserver.utils.ResultVoUtil;
+import thyyxxk.webserver.utils.StringUtil;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 描述: 住院医生,检查申请
+ * </p>
+ *
+ * @author xc
+ * @date 2022-02-10 15:37
+ */
+@Service
+@Slf4j
+public class JianChaShenQingServer {
+    private final JianChaShenQingDao dao;
+
+    public JianChaShenQingServer(JianChaShenQingDao dao) {
+        this.dao = dao;
+    }
+
+
+    public ResultVo<IPage<YshYjReq>> huoQuJianChaShenQing(ChaXunJianCha param) {
+        IPage<YshYjReq> page = new Page<>(param.getCurrentPage(), param.getPageSize(), param.getTotal() == 0);
+        log.info("查询条件:{}", JSON.toJSONString(param));
+        page = dao.huoQuJianChaShenQing(page, param.getPatNo(), param.getTimes(), param.getOrderName());
+        return ResultVoUtil.success(page);
+    }
+
+
+    public ResultVo<Map<String, Object>> huoQuShengQingXiangQing(Integer reqNo) {
+        YshYjReq req = dao.huoQuShengQingXiangQing(reqNo);
+        if (req == null) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, "没有查询到有效信息,可能已经被删除了。");
+        }
+        Map<String, Object> map = new HashMap<>();
+        StringBuilder zhuYiShiXiang = new StringBuilder();
+        JcZdClass jc = dao.daYingXiangQing(req.getOrderType());
+        // 获取患者的住址和性别
+        PatientTemp patient = dao.huoQuHuanZheXinXi(req.getInpatientNo());
+        req.setSex(patient.getSex());
+        // 地址
+        req.setHomeStreet(patient.getHomeStreet());
+        //联系电话
+        req.setHomeTel(patient.getHomeTel());
+        // 医保身份
+        req.setResponceTypeName(dao.huoQuHuanZheShenFen(req.getInpatientNo()));
+
+        map.put("biaoTi", jc.getComm());
+        Field[] fields = jc.getClass().getDeclaredFields();
+        for (Field field : fields) {
+            field.setAccessible(true);
+            // 输出属性名和属性值
+            try {
+                String key = field.getName();
+                Object value = EntityStringTrim.getFieldValue(jc, key);
+                if (key.startsWith("comment") && StringUtil.notBlank((String) value)) {
+                    zhuYiShiXiang.append(((String) value).trim()).append("\n");
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        map.put("zhuYiShiXiang", zhuYiShiXiang.toString());
+        map.put("shuJu", req);
+        return ResultVoUtil.success(map);
+    }
+
+
+    public ResultVo<IPage<JcZdClass>> huoQuJianChaMing(long total, long currentPage) {
+        IPage<JcZdClass> page = new Page<>();
+        if (total == 0) {
+            page.setTotal(dao.jianChaMingTiaoShu());
+        }
+        page.setRecords(dao.jianChaMing(currentPage));
+        return ResultVoUtil.success(page);
+    }
+}