Browse Source

电子病历快捷提示。

DESKTOP-0GD05B0\Administrator 2 years ago
parent
commit
97090c50a8

+ 55 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/EmrController.java

@@ -8,8 +8,10 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emr.DischargedEmrModifyApply;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrPatientData;
+import thyyxxk.webserver.entity.zhuyuanyisheng.emr.MedicalHistoryPrompts;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.zhuyuanyisheng.EmrServer;
+import thyyxxk.webserver.utils.StringUtil;
 
 import java.util.List;
 import java.util.Map;
@@ -145,4 +147,57 @@ public class EmrController {
         return server.getHistory(documentId);
     }
 
+    @GetMapping("/getEmrTips")
+    public ResultVo<List<MedicalHistoryPrompts>> getEmrTips() {
+        return server.getEmrTips();
+    }
+
+    @PostMapping("/addEmrTips")
+    public ResultVo<String> addEmrTips(@RequestBody MedicalHistoryPrompts param) {
+        return server.addEmrTips(param);
+    }
+
+    @PostMapping("/updateEmrTips")
+    public ResultVo<String> updateEmrTips(@RequestBody MedicalHistoryPrompts param) {
+        return server.updateEmrTips(param);
+    }
+
+    @GetMapping("/deleteEmrTips")
+    public ResultVo<String> deleteEmrTips(@RequestParam("id") Integer id) {
+        return server.deleteEmrTips(id);
+    }
+
+    @GetMapping("/getEmrTipsData")
+    public ResultVo<List<MedicalHistoryPrompts>> getEmrTipsData(@RequestParam("name") String name) {
+        int typeCode = 1;
+        if (name.length() > 2) {
+            typeCode = getTypeCode(name.substring(0, 2).toUpperCase());
+            if (typeCode == 0) {
+                typeCode = 1;
+            } else {
+                name = name.substring(2);
+                if (StringUtil.isBlank(name)) {
+                    name = "%";
+                }
+            }
+        }
+        return server.getEmrTipsData(name, typeCode);
+    }
+
+    private int getTypeCode(String name) {
+        switch (name) {
+            case "G ":
+            case "1 ":
+                return 1;
+            case "K ":
+            case "2 ":
+                return 2;
+            case "Q ":
+            case "3 ":
+                return 3;
+            default:
+                return 0;
+        }
+    }
+
 }

+ 35 - 4
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/EmrPatientDao.java

@@ -3,13 +3,11 @@ package thyyxxk.webserver.dao.his.zhuyuanyisheng;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.sun.org.apache.xalan.internal.xsltc.compiler.util.VoidType;
 import org.apache.ibatis.annotations.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import thyyxxk.webserver.entity.drg.AuxiliaryFillingOfDiagnosis;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.DischargedEmrModifyApply;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrDataElement;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrDataExtract;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrPatientData;
+import thyyxxk.webserver.entity.zhuyuanyisheng.emr.*;
 
 import java.util.List;
 import java.util.Map;
@@ -237,4 +235,37 @@ public interface EmrPatientDao {
                        String reviewNotes,
                        int status);
 
+    @Select("select id, creator_id, creator_data, content, dept, type_code,query_key " +
+            "from medical_history_prompts where creator_id = #{id} ")
+    List<MedicalHistoryPrompts> selectEmrTips(String id);
+
+
+    @Insert("insert into medical_history_prompts (creator_id, content, dept, type_code, query_key) " +
+            "values (#{creatorId},#{content},#{dept},#{typeCode},#{queryKey})")
+    void insertEmrTips(MedicalHistoryPrompts param);
+
+    @Update("update medical_history_prompts " +
+            "set content   = #{content}, " +
+            "    type_code = #{typeCode}, " +
+            "    query_key = #{queryKey} " +
+            "where id = #{id} ")
+    void updateEmrTips(MedicalHistoryPrompts param);
+
+    @Delete("delete medical_history_prompts where id = #{id} ")
+    void delEmrTips(Integer id);
+
+    @Select("select id, " +
+            "       creator_id, " +
+            "       creator_data, " +
+            "       content, " +
+            "       dept, " +
+            "       type_code, " +
+            "       query_key, " +
+            "       user_code, " +
+            "       code, " +
+            "       table_name, " +
+            "       count " +
+            "from medical_history_prompts a " +
+            "         left join hot_search_sorting b on (a.query_key = b.code and b.table_name = 'medical_history_prompts') ${ew.customSqlSegment} ")
+    List<MedicalHistoryPrompts> getEmrTipsData(@Param(Constants.WRAPPER) QueryWrapper<?> queryWrapper);
 }

+ 62 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/emr/MedicalHistoryPrompts.java

@@ -0,0 +1,62 @@
+package thyyxxk.webserver.entity.zhuyuanyisheng.emr;
+
+import java.io.Serializable;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class MedicalHistoryPrompts implements Serializable {
+
+    private static final long serialVersionUID = 6207324461366360513L;
+
+    /**
+     * id
+     */
+    private Integer id;
+
+    /**
+     * creatorId
+     */
+    private String creatorId;
+
+    /**
+     * creatorData
+     */
+    private Date creatorData;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 创建科室
+     */
+    private String dept;
+
+    /**
+     * 1 - 个人 2- 科室 3-全院
+     */
+    private Integer typeCode;
+
+    /**
+     * 快速查询条件
+     */
+    private String queryKey;
+
+    public String getTypeName() {
+        switch (typeCode) {
+            case 1:
+                return "个人";
+            case 2:
+                return "科室";
+            case 3:
+                return "全院";
+            default:
+                return "";
+        }
+    }
+
+}

+ 45 - 8
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/EmrServer.java

@@ -18,10 +18,7 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.drg.AuxiliaryFillingOfDiagnosis;
 import thyyxxk.webserver.entity.login.UserInfo;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.DischargedEmrModifyApply;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrDataElement;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrDataExtract;
-import thyyxxk.webserver.entity.zhuyuanyisheng.emr.EmrPatientData;
+import thyyxxk.webserver.entity.zhuyuanyisheng.emr.*;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.externalhttp.emr.EmrEditor;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
@@ -40,14 +37,14 @@ public class EmrServer {
     private final EmrEditor emr;
     private final PublicServer publicServer;
     private final LoginDao loginDao;
-    private final RedisLikeService realtimeService;
+    private final RedisLikeService redisLikeService;
 
-    public EmrServer(EmrPatientDao dao, EmrEditor emr, PublicServer publicServer, LoginDao loginDao, RedisLikeService realtimeService) {
+    public EmrServer(EmrPatientDao dao, EmrEditor emr, PublicServer publicServer, LoginDao loginDao, RedisLikeService redisLikeService) {
         this.dao = dao;
         this.emr = emr;
         this.publicServer = publicServer;
         this.loginDao = loginDao;
-        this.realtimeService = realtimeService;
+        this.redisLikeService = redisLikeService;
     }
 
     /**
@@ -86,7 +83,7 @@ public class EmrServer {
     }
 
     public List<JSONObject> getDeptTemplate() {
-        UserInfo user = realtimeService.getUserInfoByToken();
+        UserInfo user = redisLikeService.getUserInfoByToken();
         JSONArray data = emr.getDeptList(user.getDeptCode());
         return emrToTree(data);
     }
@@ -623,5 +620,45 @@ public class EmrServer {
         return ResultVoUtil.success(emr.getHistory(documentId));
     }
 
+    public ResultVo<List<MedicalHistoryPrompts>> getEmrTips() {
+        return ResultVoUtil.success(dao.selectEmrTips(TokenUtil.getTokenUserId()));
+    }
+
+
+    public ResultVo<String> addEmrTips(MedicalHistoryPrompts param) {
+        log.info("数据:{}", JSON.toJSONString(param));
+        UserInfo userInfo = redisLikeService.getUserInfoByToken();
+        param.setDept(userInfo.getDeptCode());
+        param.setCreatorId(userInfo.getCode());
+        dao.insertEmrTips(param);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
+    }
+
+    public ResultVo<String> updateEmrTips(MedicalHistoryPrompts param) {
+        if (param.getId() == null) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "id 为空无法更新。");
+        }
+        dao.updateEmrTips(param);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
+    }
+
+    public ResultVo<String> deleteEmrTips(Integer id) {
+        dao.delEmrTips(id);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
+    }
+
+    /**
+     * 在病程记录中获取文本数据
+     *
+     * @param name 名称
+     * @return 返回数据
+     */
+    public ResultVo<List<MedicalHistoryPrompts>> getEmrTipsData(String name, int typeCode) {
+        QueryWrapper<?> qw = new QueryWrapper<>();
+        qw.like("query_key", name)
+                .eq("type_code", typeCode)
+                .orderByDesc("count");
+        return ResultVoUtil.success(dao.getEmrTipsData(qw));
+    }
 
 }