Browse Source

电子病历规则

DESKTOP-0GD05B0\Administrator 2 năm trước cách đây
mục cha
commit
02911f48a2

+ 10 - 0
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/EmrControlRuleController.java

@@ -56,4 +56,14 @@ public class EmrControlRuleController {
         return server.switchQualityControl(id, offOn);
     }
 
+    @GetMapping("/deleteRuleById")
+    public ResultVo<String> deleteRuleById(@RequestParam("id") String id) {
+        return server.deleteRuleById(id);
+    }
+
+    @PostMapping("/modifyQualityControl")
+    public ResultVo<String> modifyQualityControl(@RequestBody RuleAdd data) {
+        return server.modifyQualityControl(data);
+    }
+
 }

+ 19 - 6
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/EmrControlDao.java

@@ -1,11 +1,7 @@
 package thyyxxk.webserver.dao.his.zhuyuanyisheng;
 
 
-import org.apache.ibatis.annotations.Insert;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.Update;
-import thyyxxk.webserver.entity.inpatient.patient.Patient;
+import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule.EmrRule;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule.QualityControlAnalysisOfMedicalRecords;
 import thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule.RuleAdd;
@@ -48,6 +44,16 @@ public interface EmrControlDao {
             "where ${condition} ")
     List<QualityControlAnalysisOfMedicalRecords> selectedPatientsAdmittedAtTheSpecifiedTime(String condition);
 
+    @Select("select id, " +
+            "       type, " +
+            "       off_or_on_rule, " +
+            "       prompt_statement, " +
+            "       name, " +
+            "       sql, " +
+            "       prescription " +
+            "from emr_control_rule ")
+    List<EmrRule> selectRules();
+
     @Select("select id, " +
             "       type, " +
             "       off_or_on_rule, " +
@@ -57,7 +63,7 @@ public interface EmrControlDao {
             "       prescription " +
             "from emr_control_rule " +
             "where off_or_on_rule = 1")
-    List<EmrRule> selectedRules();
+    List<EmrRule> selectRulesOpen();
 
     @Select("select code " +
             "from emr_control_temp_code " +
@@ -94,4 +100,11 @@ public interface EmrControlDao {
     @Update("update emr_control_rule set off_or_on_rule = #{offOn} where id = #{id} ")
     int switchQualityControl(String id, Integer offOn);
 
+    @Delete("delete emr_control_rule where id = #{id};" +
+            "delete emr_control_temp_code where rule_id = #{id} ")
+    void deleteRuleById(String id);
+
+    @Select("select code from emr_control_temp_code where rule_id = #{id}")
+    List<String> selectEmrCodeByRuleId(String id);
+
 }

+ 4 - 0
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/emrcontrolrule/EmrRule.java

@@ -2,6 +2,8 @@ package thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule;
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class EmrRule {
 
@@ -35,4 +37,6 @@ public class EmrRule {
     private String name;
     private String sql;
     private Integer prescription;
+
+    private List<String> medicalRecordCode;
 }

+ 2 - 3
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/emrcontrolrule/RuleAdd.java

@@ -2,16 +2,15 @@ package thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule;
 
 import lombok.Data;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Null;
 import java.util.List;
 import java.util.Map;
 
 @Data
 public class RuleAdd {
+
+    private String id;
     private int type;
     private List<String> medicalRecordCode;
-    private Map<String, Object> medicalRecord;
     /**
      * 是否开启
      */

+ 23 - 9
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/EmrControlRuleSever.java

@@ -5,9 +5,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestTemplate;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.Capacity;
 import thyyxxk.webserver.dao.his.zhuyuanyisheng.EmrControlDao;
@@ -18,7 +16,6 @@ import thyyxxk.webserver.entity.zhuyuanyisheng.emrcontrolrule.RuleAdd;
 import thyyxxk.webserver.service.wxapi.SendWxInfoService;
 import thyyxxk.webserver.utils.*;
 
-import javax.annotation.PostConstruct;
 import java.util.*;
 
 /**
@@ -43,12 +40,12 @@ public class EmrControlRuleSever {
             return ResultVoUtil.fail(ExceptionEnum.NULL_POINTER, "病历模板编码不能为空。");
         }
         StringBuilder sb = new StringBuilder();
-        for (Map.Entry<String, Object> item : data.getMedicalRecord().entrySet()) {
-            JSONObject js = JSONObject.parseObject(JSON.toJSONString(item.getValue()));
-            if (dao.getEmrRuleCount(js.getString("code"), data.getType()) > 0) {
-                sb.append("病历规则重复添加:病历名称:").append(js.getString("name")).append("<br/>");
+        for (String s : data.getMedicalRecordCode()) {
+            if (dao.getEmrRuleCount(s, data.getType()) > 0) {
+                sb.append("病历规则重复添加");
             }
         }
+
         if (StringUtil.notBlank(sb.toString())) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_HTML_ERROR, sb.toString());
         }
@@ -80,16 +77,22 @@ public class EmrControlRuleSever {
 
 
     public List<EmrRule> getRuleList() {
-        List<EmrRule> list = dao.selectedRules();
+        List<EmrRule> list = dao.selectRules();
         if (ListUtil.isBlank(list)) {
             return new ArrayList<>();
         }
+        list.forEach(item -> {
+            item.setMedicalRecordCode(dao.selectEmrCodeByRuleId(item.getId()));
+        });
         return list;
     }
 
     private List<QualityControlAnalysisOfMedicalRecords> getPatientsAdmittedAtTheSpecifiedTime(List<QualityControlAnalysisOfMedicalRecords> patientList, boolean whetherToSendTheMessage) {
         Map<String, QualityControlAnalysisOfMedicalRecords> retainPatientInformation = new HashMap<>(patientList.size());
-        List<EmrRule> ruleList = getRuleList();
+        List<EmrRule> ruleList = dao.selectRulesOpen();
+        if (ListUtil.isBlank(ruleList)) {
+            return patientList;
+        }
         Map<String, Map<String, Integer>> messageBody = new LinkedHashMap<>(ruleList.size());
 
         for (EmrRule rule : ruleList) {
@@ -208,4 +211,15 @@ public class EmrControlRuleSever {
         return ResultVoUtil.success();
     }
 
+    public ResultVo<String> deleteRuleById(String id) {
+        dao.deleteRuleById(id);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
+    }
+
+    public ResultVo<String> modifyQualityControl(RuleAdd data) {
+        dao.deleteRuleById(data.getId());
+        addTimeRule(data);
+        return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
+    }
+
 }