Explorar o código

义乌妇幼新增规则合并(youwh)

wangsy %!s(int64=3) %!d(string=hai) anos
pai
achega
28bced47a9

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 150 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03302.java


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 161 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON03305.java


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 139 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF03307.java


+ 70 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03299.java

@@ -0,0 +1,70 @@
+package com.lantone.qc.kernel.catalogue.firstcourserecord;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
+import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @ClassName : FIRC03299
+ * @Description : 首次病程录性别和科室不符,性别不应为男性
+ * @Author : 沈乾
+ * @Date: 2022-04-14 15:25
+ */
+@Component
+public class FIRC03299 extends QCCatalogue {
+
+    private List<String> genderList = Lists.newArrayList("男", "男性", "1", "1男", "1男性", "1.男");
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        /**
+         1.查证【首次病程录】,有则继续
+         2.查证【住院信息表】是否包含(产科/妇科/妇产科)任一字段,有则继续。
+         3.查证【首次病程录】>>【性别】字段内容, 字段内容为【男#男性#1#1男#1男性#1.男】任一,则提示。
+
+         */
+        status.set("0");
+        //1.查证首次病程录,有则继续;再查证住院信息表
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        if (firstCourseRecordDoc == null) {
+            return;
+        }
+        if (medicalRecordInfoDoc == null) {
+            return;
+        }
+        //定义变量,并将住院信息表中的出院科室信息赋值给变量
+        String behDeptName = medicalRecordInfoDoc.getStructureMap().get("beh_dept_name");
+        //定义变量,并将病案首页中的出院科室信息赋值给变量
+        String aa = firstCourseRecordDoc.getStructureMap().get("出院科别");
+        //定义列表储存字段
+        List<String> disease_name = Arrays.asList("产科", "妇科", "妇产科");
+        //定义一个布尔类型,用于最后的判断
+        boolean l = false;
+        //遍历列表内容,
+        for (int i = 0; i < disease_name.size(); i++) {
+            String name = disease_name.get(i);//定义一个变量储存每一次遍历时获取的列表值
+            if ((StringUtil.isNotBlank(aa) && aa.contains(name)) || (StringUtil.isNotBlank(behDeptName) && behDeptName.contains(name))) {//用contains判断变量abc中是否包含列表中的任一项
+                l = true;
+                break;
+            }
+        }
+        if (l) {
+            //定义变量储存从病案首页中获取的性别字段信息
+            String gender = firstCourseRecordDoc.getStructureMap().get("性别");
+            if (StringUtil.isNotBlank(gender) && genderList.contains(gender)) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}
+

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 96 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03303.java


+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03311.java

@@ -24,7 +24,7 @@ import java.util.Map;
 @Component
 public class FIRC03311 extends QCCatalogue {
 
-    private List<String> icdCodeList = Lists.newArrayList("男", "男性", "1", "1男", "1男性", "1.男");
+    private List<String> genderList = Lists.newArrayList("男", "男性", "1", "1男", "1男性", "1.男");
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
@@ -69,7 +69,7 @@ public class FIRC03311 extends QCCatalogue {
         //性别
         String gender = firstCourseRecordDoc.getStructureMap().get(Content.gender);
 
-        if (icdCodeList.contains(gender)) {
+        if (genderList.contains(gender)) {
             status.set("-1");
             return;
         }

+ 114 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03308.java

@@ -0,0 +1,114 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03308
+ * @Description :  入院病情不应为4
+ * @Author : 尤伟豪
+ * @Date: 2022/4/19 13:19
+ */
+
+/*1.查证【病案首页】,有则继续。
+        2.查证【病案首页】>>【出院诊断】中是否有诊断能匹配【异位妊娠-疾病列表】中任一疾病名称,有则继续。
+        3.查证【匹配的异位妊娠疾病】对应的【入院病情】是否填写为【无/4/4.无】,是则提示*/
+@Component
+public class FIRP03308 extends QCCatalogue {
+
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+
+        status.set("0");
+        //查证病案首页,没有则终止
+        if(inputInfo.getFirstPageRecordDoc() == null){
+            return;
+        }
+        //将【异位妊娠-疾病列表】中任一疾病名称中的所有名称写入列表中去
+        List<String> disease_name = Arrays.asList("腹腔妊娠", "大网膜妊娠", "输卵管妊娠", "输卵管妊娠合并宫内孕", "输卵管伞部妊娠破裂"
+                , "输卵管复合妊娠", "输卵管妊娠流产", "输卵管妊娠破裂", "输卵管残端妊娠破裂", "输卵管壶腹部妊娠", "输卵管壶腹部妊娠流产"
+                , "输卵管壶腹部妊娠破裂", "输卵管间质部妊娠", "输卵管间质部妊娠流产", "输卵管间质部妊娠破裂", "输卵管伞部妊娠", "异位妊娠"
+                , "输卵管伞部妊娠流产", "输卵管伞端妊娠破裂", "输卵管峡部妊娠", "输卵管峡部妊娠破裂", "陈旧性输卵管妊娠", "卵巢妊娠"
+                , "卵巢妊娠破裂", "异位妊娠,其他的", "子宫下段妊娠", "子宫颈妊娠", "剖宫产瘢痕妊娠", "韧带内妊娠", "残角子宫妊娠"
+                , "残角子宫妊娠破裂", "输卵管峡部妊娠流产", "宫颈妊娠", "宫内外复合妊娠", "阔韧带妊娠", "子宫瘢痕处妊娠", "子宫壁妊娠"
+                , "子宫角妊娠", "持续性异位妊娠", "腹腔妊娠", "大网膜妊娠", "输卵管妊娠", "宫内外复合妊娠", "输卵管伞端妊娠破裂"
+                , "输卵管复合妊娠", "输卵管妊娠流产", "输卵管妊娠破裂", "输卵管残端妊娠破裂", "输卵管壶腹部妊娠", "输卵管壶腹部妊娠流产"
+                , "输卵管壶腹部妊娠破裂", "输卵管间质部妊娠", "输卵管间质部妊娠流产", "输卵管间质部妊娠破裂", "输卵管伞部妊娠"
+                , "输卵管伞部妊娠流产", "输卵管伞端妊娠破裂", "输卵管峡部妊娠", "输卵管峡部妊娠流产", "输卵管峡部妊娠破裂"
+                , "陈旧性输卵管妊娠", "卵巢妊娠", "卵巢妊娠破裂", "异位妊娠,其他的", "子宫下段妊娠", "宫颈妊娠", "子宫瘢痕处妊娠"
+                , "阔韧带妊娠", "残角子宫妊娠", "残角子宫妊娠破裂", "宫颈妊娠", "宫内外复合妊娠", "阔韧带妊娠", "子宫瘢痕处妊娠"
+                , "子宫壁妊娠", "子宫角妊娠", "异位妊娠", "持续性异位妊娠");
+
+     /*   注意病案首页返回类型为map集合,由于出院诊断比较特殊,无法直接获取里面的字符串,要先获取集合,然后获取的出院诊断本身也是个集合,
+        要遍历获取里面的诊断名称,再用里面的诊断名称,去匹配规则,这里要注意,外面遍历的时候,不能终止循环,要取出院诊断集合中的每一个记录
+                进行规则匹配 */
+
+        Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+        List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
+        if (ListUtil.isEmpty(dischargeDiag)) {
+            return;
+        }
+        for (Map<String, String> diagMap : dischargeDiag) {
+            //获取出院诊断中的诊断名称
+           String h = diagMap.get("诊断名称");
+           //建立空字符串获取入院病情
+           String n = "";
+           boolean k = false;
+           for(int i=0;i < disease_name.size();i++){
+               String name = disease_name.get(i);
+               //查证诊断名称是否匹配疾病列表任一疾病,有则获取入院病情这个字段,用于接下来的规则匹配
+               if(StringUtil.isNotBlank(h) && h.contains(name)){
+                   n = diagMap.get("入院病情");
+                   k = true;
+                   break;
+                   }
+               }
+           if(k){
+               //查证匹配的疾病对应的入院病情是否填写为【无/4/4.无】
+               if(n.equals("无") || n.equals("4") || n.equals("4.无")){
+                   status.set("1");
+                   return;
+               }
+
+           }
+
+
+           }
+
+            }
+        }
+/*        //取出map集合里的相应字符串
+        for (Map<String, String> diagMap : dischargeDiag) {
+            h =diagMap.get("诊断名称");
+            String s = diagMap.get("入院病情");
+            for(int i = 0;i < disease_name.size();i++){
+                String name = disease_name.get(i);
+                //判断病案首页中的出院诊断字段是否匹配任一疾病,并将匹配到的疾病用n接收
+                if(StringUtil.isNotBlank(h)&&h.contains(name)){
+                    f = true;
+                    if(s.equals("无") || s.equals("4") || s.equals("4.无")){
+                        status.set("1");
+                        return;
+                    }
+                }
+            }
+        }*/
+
+
+
+
+
+
+
+
+
+

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 146 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE03306.java


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 115 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03304.java


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 115 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03309.java