Forráskód Böngészése

萧山中医院初步调试

wangsy 3 éve
szülő
commit
686fa03963

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0009.java

@@ -22,7 +22,7 @@ import java.util.List;
 @Component
 public class BEH0009 extends QCCatalogue {
     private List<String> containList = Arrays.asList("检查", "术后", "药物", "发现", "误服", "确诊", "经", "异常", "诊断"
-            , "示", "超", "伤", "术", "复查", "体检", "血透", "血液透析", "孕", "农药", "呻吟");
+            , "示", "超", "伤", "术", "复查", "体检", "血透", "血液透析", "孕", "农药", "呻吟", "颈椎");
 
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         if (inputInfo.getBeHospitalizedDoc() == null) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0010.java

@@ -21,7 +21,7 @@ import java.util.List;
 @Component
 public class BEH0010 extends QCCatalogue {
     private List<String> containList = Arrays.asList("癌", "瘤", "复诊", "术后", "化疗后", "发现", "体检", "检查", "确诊"
-            , "诊断", "复查", "复发", "示", "超", "CT", "血透", "血液透析", "治疗后");
+            , "诊断", "复查", "复发", "示", "超", "CT", "血透", "血液透析", "治疗后", "痛");
 
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0030.java

@@ -47,7 +47,7 @@ public class BEH0030 extends QCCatalogue {
             status.set("0");
         }
         String pastText = pastLabel.getText();
-        if (pastText.contains("肝炎") || pastText.contains("结核") || pastText.contains("详见原病历")
+        if (pastText.contains("肝炎") || pastText.contains("传染病") || pastText.contains("结核") || pastText.contains("详见原病历")
                 || pastText.contains("见旧病历") || pastText.contains("见既往病历") || pastText.contains("乙肝")) {
             status.set("0");
         }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0372.java

@@ -29,7 +29,7 @@ public class BEH0372 extends QCCatalogue {
             bhbasicInfoStatus = inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻");
         }
         if (StringUtil.isBlank(basicInfoStatus) || basicInfoStatus.contains("详见")
-                || basicInfoStatus.contains("见旧病历")|| basicInfoStatus.contains("见既往病历")|| StringUtil.isBlank(bhbasicInfoStatus)) {
+                || basicInfoStatus.contains("见旧病历") || basicInfoStatus.contains("见既往病历") || StringUtil.isBlank(bhbasicInfoStatus)) {
             status.set("0");
             return;
         }
@@ -58,7 +58,7 @@ public class BEH0372 extends QCCatalogue {
         }
 
         if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚")
-                || basicInfoStatus.contains("育有") || basicInfoStatus.contains("已婚"))) {
+                || basicInfoStatus.contains("育有") || basicInfoStatus.contains("已婚") || basicInfoStatus.contains("婚育"))) {
             status.set("0");
             return;
         }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0342.java

@@ -27,13 +27,14 @@ public class DEAR0342 extends QCCatalogue {
             }
         }
     }
+
     private String getKeyByHospitalId() {
-        switch (Content.hospital_Id)
-        {
+        switch (Content.hospital_Id) {
             case "1":               //长兴
             case "2":
             case "5":
             case "35":
+            case "11":
                 return "诊疗经过";
             default:
                 return "诊疗经过(重点记录病情演变、抢救经过)";

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0344.java

@@ -24,7 +24,7 @@ public class DEAR0344 extends QCCatalogue {
             if (CatalogueUtil.isEmpty(diagnosisTreatmentProcess)) {
                 return;
             }
-            if (!diagnosisTreatmentProcess.contains("抢救")) {
+            if (!diagnosisTreatmentProcess.contains("抢救") && !diagnosisTreatmentProcess.contains("胸外按压") && !diagnosisTreatmentProcess.contains("心肺复苏")) {
                 status.set("-1");
             }
         }

+ 6 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0118.java

@@ -23,15 +23,15 @@ public class DIF0118 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         List<DifficultCaseDiscussDoc> difficultCaseDiscussDocs = inputInfo.getDifficultCaseDiscussDocs();
-        if(ListUtil.isEmpty(difficultCaseDiscussDocs)){
+        if (ListUtil.isEmpty(difficultCaseDiscussDocs)) {
             return;
         }
-        if(difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size()>0){
-            for (DifficultCaseDiscussDoc dcdd:difficultCaseDiscussDocs) {
+        if (difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size() > 0) {
+            for (DifficultCaseDiscussDoc dcdd : difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
                 String key = getKeyByHospitalId();
                 String diisDate = dcddStructureMap.get(key);
-                if(CatalogueUtil.isEmpty(diisDate)){
+                if (CatalogueUtil.isEmpty(diisDate)) {
                     status.set("-1");
                     break;
                 }
@@ -40,10 +40,10 @@ public class DIF0118 extends QCCatalogue {
     }
 
     private String getKeyByHospitalId() {
-        switch (Content.hospital_Id)
-        {
+        switch (Content.hospital_Id) {
             case "1":               //长兴
             case "2":
+            case "11":
                 return "主持人";
             default:
                 return "主持人姓名及专业技术职务";

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0119.java

@@ -38,10 +38,11 @@ public class DIF0119 extends QCCatalogue {
             }
         }
     }
+
     private String getKeyByHospitalId() {
-        switch (Content.hospital_Id)
-        {
+        switch (Content.hospital_Id) {
             case "5":
+            case "11":
                 return "参加人员的姓名及专业技术职务";
             case "20":
                 return "参加人员的姓名及专业技术职务";

+ 45 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/xszyy/firstpagerecord/FIRP0220.java

@@ -0,0 +1,45 @@
+package com.lantone.qc.kernel.catalogue.hospital.xszyy.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.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0220
+ * @Description : 入院时间与入院记录时间不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:10
+ */
+@Component
+public class FIRP0220 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() == null || inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+        String firstAdmissionDate = firstpageStructureMap.get(Content.admisTime);
+        String admissionDate = beHospitalStructureMap.get(Content.admisDate);
+        if (StringUtil.isEmpty(firstAdmissionDate) || StringUtil.isEmpty(admissionDate)) {
+            status.set("0");
+            return;
+        }
+        String[] dateFormats = new String[]{"yyyy年MM月dd日HH时mm分ss", "yyyy年MM月dd日HH时mm分","yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm"};
+        Date firstDate = StringUtil.parseDateTime(firstAdmissionDate);
+        Date admisDate = StringUtil.parseDateTime(admissionDate, dateFormats);
+        if (firstDate != null && admisDate != null) {
+            if (firstDate.getYear() == admisDate.getYear() &&
+                    firstDate.getMonth() == admisDate.getMonth() &&
+                    firstDate.getDay() == admisDate.getDay()) {
+                status.set("0");
+            }
+        }
+    }
+}

+ 74 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/xszyy/operationdiscussion/OPE03142.java

@@ -0,0 +1,74 @@
+package com.lantone.qc.kernel.catalogue.hospital.xszyy.operationdiscussion;
+
+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.model.doc.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 手术记录出血情况未填写
+ * @author: kwz
+ * @time: 2020/06/29 11:22
+ */
+@Component
+public class OPE03142 extends QCCatalogue {
+    /**
+     * 1.手术记录中包含文本形式【失血/出血】
+     * 或2.标题形式包含【失血/出血】判断是否为空
+     *
+     * @param inputInfo
+     * @param outputInfo
+     */
+
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        int operationNum = 0;
+        int bleedingNum = 0;
+        //先判断有无手术记录
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+        if (operationDocs != null && operationDocs.size() > 0) {
+            ss:
+            for (OperationDoc operationDoc : operationDocs) {
+                if (operationDoc == null) {
+                    continue;
+                }
+                OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+                if (operationRecordDoc != null) {
+                    operationNum++;
+                    Map<String, String> structureMap = operationRecordDoc.getStructureMap();
+                    if (structureMap == null) {
+                        continue;
+                    }
+                    String lossOfBlood = structureMap.get("失血");
+                    String bleeding = structureMap.get("出血");
+                    if (StringUtil.isNotBlank(lossOfBlood) || StringUtil.isNotBlank(bleeding)) {
+                        bleedingNum++;
+                        break ss;
+                    }
+                    String afterOperation = structureMap.get("手术经过及处理");
+                    List<String> bleedingRecordList = Content.bleedingRecordList;
+                    if (StringUtil.isNotBlank(afterOperation)) {
+                        for (String bleedingRecord : bleedingRecordList) {
+                            if (afterOperation.contains(bleedingRecord)) {
+                                bleedingNum++;
+                                break ss;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        if (operationNum != bleedingNum) {
+            status.set("-1");
+            return;
+        }
+    }
+}

+ 64 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/xszyy/operationdiscussion/OPE03143.java

@@ -0,0 +1,64 @@
+package com.lantone.qc.kernel.catalogue.hospital.xszyy.operationdiscussion;
+
+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.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 手术记录输血情况未填写
+ * @author: kwz
+ * @time: 2020/06/29 11:22
+ */
+@Component
+public class OPE03143 extends QCCatalogue {
+    /**
+     * 标题形式包含【输血】判断是否为空
+     *
+     * @param inputInfo
+     * @param outputInfo
+     */
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        boolean flag = true;
+        //先判断有无手术记录
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+        if (operationDocs != null && operationDocs.size() > 0) {
+            for (OperationDoc operationDoc : operationDocs) {
+                if (operationDoc == null) {
+                    continue;
+                }
+                OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+                if (operationRecordDoc != null) {
+                    Map<String, String> structureMap = operationRecordDoc.getStructureMap();
+                    if (structureMap == null) {
+                        continue;
+                    }
+                    String bloodTransfusion = structureMap.get("输血情况");
+                    if (StringUtil.isNotBlank(bloodTransfusion)) {
+                        flag = false;
+                    }
+
+                    String afterOperation = structureMap.get("手术经过及处理");
+                    if (StringUtil.isNotBlank(afterOperation)) {
+                        if (afterOperation.contains("输血")) {
+                            flag = false;
+                        }
+                    }
+                }
+            }
+        }
+
+        if (flag) {
+            status.set("-1");
+            return;
+        }
+    }
+}

+ 36 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/xszyy/threelevelward/THR0685.java

@@ -0,0 +1,36 @@
+package com.lantone.qc.kernel.catalogue.hospital.xszyy.threelevelward;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.RescueDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : THR0685
+ * @Description : 抢救记录未记录参加抢救医务人员姓名及职称
+ * @Author : 胡敬
+ * @Date: 2020-03-30 13:15
+ */
+@Component
+public class THR0685 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
+        if (ListUtil.isEmpty(rescueDocs)) {
+            return;
+        }
+        for (RescueDoc rescueDoc : rescueDocs) {
+            Map<String, String> rescueStructureMap = rescueDoc.getStructureMap();
+            if (CatalogueUtil.isEmpty(rescueStructureMap.get("参加抢救的医务人员姓名及专业技术职称"))) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}

+ 22 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03143.java

@@ -22,32 +22,45 @@ import java.util.Map;
 public class OPE03143 extends QCCatalogue {
     /**
      * 标题形式包含【输血】判断是否为空
+     *
      * @param inputInfo
      * @param outputInfo
      */
     @Override
-    protected void start(InputInfo inputInfo, OutputInfo outputInfo){
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+        boolean flag = true;
         //先判断有无手术记录
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
-        if(operationDocs != null && operationDocs.size()>0){
-           for (OperationDoc operationDoc : operationDocs) {
-                if(operationDoc==null){
+        if (operationDocs != null && operationDocs.size() > 0) {
+            for (OperationDoc operationDoc : operationDocs) {
+                if (operationDoc == null) {
                     continue;
                 }
                 OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
-                if(operationRecordDoc!=null){
+                if (operationRecordDoc != null) {
                     Map<String, String> structureMap = operationRecordDoc.getStructureMap();
-                    if(structureMap==null){
+                    if (structureMap == null) {
                         continue;
                     }
                     String bloodTransfusion = structureMap.get("输血情况");
-                    if(StringUtil.isBlank(bloodTransfusion)){
-                        status.set("-1");
-                        return;
+                    if (StringUtil.isNotBlank(bloodTransfusion)) {
+                        flag = false;
+                    }
+
+                    String afterOperation = structureMap.get("手术经过");
+                    if (StringUtil.isNotBlank(afterOperation)) {
+                        if (afterOperation.contains("输血")) {
+                            flag = false;
+                        }
                     }
                 }
             }
         }
+
+        if (flag) {
+            status.set("-1");
+            return;
+        }
     }
 }

+ 3 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/preoperativediscussion/PRE0329.java

@@ -24,7 +24,7 @@ public class PRE0329 extends QCCatalogue {
         status.set("0");
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
-        if(operationDocs == null || operationDocs.size()== 0){
+        if (operationDocs == null || operationDocs.size() == 0) {
             return;
         }
         String key = getKeyByHospitalId();
@@ -37,9 +37,9 @@ public class PRE0329 extends QCCatalogue {
     }
 
     private String getKeyByHospitalId() {
-        switch (Content.hospital_Id)
-        {
+        switch (Content.hospital_Id) {
             case "2":
+            case "11":
                 return "手术指征";
             default:
                 return "手术指征与禁忌";