瀏覽代碼

宁波中医院:嵊州:规则更新

wangsy 4 年之前
父節點
當前提交
a7c518b80c

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

@@ -130,8 +130,10 @@ public class BEH0011 extends QCCatalogue {
         List<String> initDiags = new ArrayList<>();
         List<Diag> initialDiagDiags = initialDiagLabel.getDiags();
         addInitDiagHospitalName(initDiags, initialDiagDiags);
-        List<Diag> suppleDiagDiags = suppleDiagLabel.getDiags();
-        addInitDiagHospitalName(initDiags, suppleDiagDiags);
+        if(suppleDiagLabel !=null){
+            List<Diag> suppleDiagDiags = suppleDiagLabel.getDiags();
+            addInitDiagHospitalName(initDiags, suppleDiagDiags);
+        }
         initDiags = initDiags.stream().distinct().collect(Collectors.toList());
 
         String infoStr = "";

+ 52 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/ningbozhongyi/behospitalized/BEH0027.java

@@ -0,0 +1,52 @@
+package com.lantone.qc.kernel.catalogue.hospital.ningbozhongyi.behospitalized;
+
+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.entity.Allergy;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @Description: 药物过敏史未填写
+ * @author: rengb
+ * @time: 2020/3/10 14:02
+ */
+@Component
+public class BEH0027 extends QCCatalogue {
+
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        if (pastLabel == null) {
+            status.set("0");
+            return;
+        }
+        String pastText = pastLabel.getText();
+        if (StringUtil.isNotBlank(pastText) && (pastText.contains("药物过敏史")||pastText.contains("食物、药物过敏史"))) {
+            status.set("0");
+            return;
+        }
+        List<Allergy> allergies = pastLabel.getAllergies();
+        if (ListUtil.isNotEmpty(allergies)) {
+            long count = allergies.stream().filter(
+                    i -> i != null
+                            && StringUtil.isNotBlank(i.getName())
+                            && i.getAllergyMedicine() != null
+                            && StringUtil.isNotBlank(i.getAllergyMedicine().getName())
+            ).count();
+            if (count > 0) {
+                status.set("0");
+            }
+        }
+    }
+
+}

+ 60 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/behospitalized/BEH0026.java

@@ -0,0 +1,60 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.behospitalized;
+
+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.entity.Allergy;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 食物过敏史未填写
+ * @author: rengb
+ * @time: 2020/3/10 14:02
+ */
+@Component
+public class BEH0026 extends QCCatalogue {
+
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+        if (StringUtils.isNotEmpty(structureMap.get("过敏史"))) {
+            status.set("0");
+            return;
+        }
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        /* 如果既往史为空或者既往史文本为空,则不报错 */
+        if (pastLabel == null || StringUtil.isBlank(pastLabel.getText())) {
+            status.set("0");
+            return;
+        }
+        String pastText = pastLabel.getText();
+        if (pastText.contains("食物过敏史") || pastText.contains("食物、药物过敏史") || pastText.contains("详见原病历")|| pastText.contains("见旧病历") || pastText.contains("见既往病历")) {
+            status.set("0");
+            return;
+        }
+        List<Allergy> allergies = pastLabel.getAllergies();
+        if (ListUtil.isNotEmpty(allergies)) {
+            long count = allergies.stream().filter(
+                    i -> i != null
+                            && StringUtil.isNotBlank(i.getName())
+                    //                            && i.getAllergyFood() != null
+                    //                            && StringUtil.isNotBlank(i.getAllergyFood().getName())
+            ).count();
+            if (count > 0) {
+                status.set("0");
+            }
+        }
+    }
+
+}

+ 56 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/behospitalized/BEH0030.java

@@ -0,0 +1,56 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.behospitalized;
+
+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.label.PastLabel;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @Description: 传染病史未填写
+ * @author: rengb
+ * @time: 2020/3/10 14:02
+ */
+@Component
+public class BEH0030 extends QCCatalogue {
+
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+        if (StringUtils.isNotEmpty(structureMap.get("结核病")) || StringUtils.isNotEmpty(structureMap.get("病毒性肝炎"))) {
+            status.set("0");
+            return;
+        }
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        /* 如果既往史为空或者既往史文本为空,则不报错 */
+        if (pastLabel == null || StringUtil.isBlank(pastLabel.getText())) {
+            status.set("0");
+            return;
+        }
+        if (ListUtil.isNotEmpty(
+                CatalogueUtil.filterDiagsByNature(
+                        pastLabel.getDiags(),
+                        "infectious",
+                        "1"
+                )
+        )) {
+            status.set("0");
+        }
+        String pastText = pastLabel.getText();
+        if (pastText.contains("肝炎") || pastText.contains("结核") || pastText.contains("详见原病历") || pastText.contains("传染病")
+                || pastText.contains("见旧病历") || pastText.contains("见既往病历") || pastText.contains("乙肝")) {
+            status.set("0");
+        }
+    }
+
+}

+ 55 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/behospitalized/BEH0454.java

@@ -0,0 +1,55 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.behospitalized;
+
+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.entity.Diag;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * @ClassName : BEH0454
+ * @Description :  既往史未描述既往健康状况
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class BEH0454 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+        if (StringUtils.isNotEmpty(structureMap.get("既往健康状况"))) {
+            status.set("0");
+            return;
+        }
+        PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+        /* 如果既往史为空或者既往史文本为空,则不报错 */
+        if (pastLabel == null || StringUtil.isBlank(pastLabel.getText())) {
+            status.set("0");
+            return;
+        }
+        if (StringUtils.isNotEmpty(pastLabel.getHeathCondition()) || pastLabel.getText().contains("既往") || pastLabel.getText().contains("平时")
+                || pastLabel.getText().contains("详见原病历") || pastLabel.getText().contains("健康状况")
+                || pastLabel.getText().contains("见旧病历")) {
+            status.set("0");
+            return;
+        }
+        //既往有任一阳性疾病名称,则认为有健康状况
+        List<Diag> diags = pastLabel.getDiags();
+        for (Diag diag : diags) {
+            if (diag.getNegative() == null) {
+                status.set("0");
+                return;
+            }
+        }
+    }
+}

+ 3 - 45
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/threelevelward/THR02900.java

@@ -51,18 +51,9 @@ public class THR02900 extends QCCatalogue {
                 continue;
             }
             Map<String, String> structureMap = operationRecordDoc.getStructureMap();
-            String opeAssName = structureMap.get("手术者及助手名称");
-            if (StringUtil.isNotBlank(opeAssName)) {
-                split = opeAssName.split("、");
-                firstAssistant = structureMap.get("助手");
-                opeEndTime = structureMap.get("结束时间");
-            } else {
-                firstAssistant = structureMap.get("一助");
-                //取得手术时间截取结束时间(格式 2020-07-24 10:30-2020-07-24 11:45)
-                String key = getKeyByHospitalId();
-                opeEndTime = structureMap.get(key);
-                opeEndTime = getTime(opeEndTime,structureMap);
-            }
+            opeEndTime = structureMap.get("结束时间");
+            firstAssistant = structureMap.get("一助");
+            //取得手术时间截取结束时间(格式 2020-07-24 10:30-2020-07-24 11:45)
             String chiefSurgeon = structureMap.get("主刀医师");
             if (opeEndTime.contains("年月日")) {
                 continue;
@@ -125,37 +116,4 @@ public class THR02900 extends QCCatalogue {
             }
         }
     }
-
-    private String getTime(String opeEndTime,Map<String, String> structureMap) {
-        String time = "";
-        switch (Content.hospital_Id)
-        {
-            case "7":               //厦门
-            case "20":
-                if (StringUtil.isBlank(opeEndTime)) {
-                }
-                String endTime = structureMap.get("结束时间");
-                if (StringUtil.isNotBlank(endTime)) {
-                    if (endTime.length() > 5) {
-                        time = opeEndTime.substring(0, Math.min(5, opeEndTime.length())) + endTime;
-                    } else {
-                        time = opeEndTime + " " + endTime;
-                    }
-                }
-                return time;
-            default:
-                time = opeEndTime.substring(17);
-                return time;
-        }
-    }
-
-    private String getKeyByHospitalId() {
-        switch (Content.hospital_Id)
-        {
-            case "7":               //厦门
-                return "病历日期";
-            default:
-                return "记录时间";
-        }
-    }
 }

+ 19 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/threelevelward/THR03090.java

@@ -38,13 +38,24 @@ public class THR03090 extends QCCatalogue {
             return;
         }
         String operationStartDate = "";
-        if (operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc() != null) {
-            Map<String, String> operationDocStructureMap = operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc().getStructureMap();
-            operationStartDate = operationDocStructureMap.get("开始时间");
-            if (operationStartDate.contains("年月日")) {
-                operationStartDate = DateUtil.nowString();
+        String operationName = "";
+        for (OperationDoc operationDoc : operationDocs) {
+            if (operationDoc.getOperationRecordDoc() != null) {
+                operationStartDate = operationDoc.getOperationRecordDoc().getStructureMap().get("开始时间");
+                if (operationStartDate.contains("年月日")) {
+                    operationStartDate = DateUtil.nowString();
+                }
+                operationName = operationDoc.getOperationRecordDoc().getStructureMap().get("主刀医师");
             }
+
         }
+//        if (operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc() != null) {
+//            Map<String, String> operationDocStructureMap = operationDocs.get(operationDocs.size() - 1).getOperationRecordDoc().getStructureMap();
+//            operationStartDate = operationDocStructureMap.get("开始时间");
+//            if (operationStartDate.contains("年月日")) {
+//                operationStartDate = DateUtil.nowString();
+//            }
+//        }
 
         List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDocs.get(0).getAllDoctorWradDocs();
         for (ThreeLevelWardDoc threeLevelWard : allDoctorWradDocs) {
@@ -52,8 +63,9 @@ public class THR03090 extends QCCatalogue {
             String makeTitle = structureMap.get("查房标题");
             String writTitle = structureMap.get("文书标题");
             String makeDate = structureMap.get("查房日期");
-            if (StringUtil.isNotBlank(makeDate) && StringUtil.parseDateTime(makeDate).before(StringUtil.parseDateTime(operationStartDate))) {
-                if (((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("主刀")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("主刀"))
+            if (StringUtil.isNotBlank(makeDate) && StringUtil.isNotBlank(operationStartDate) && StringUtil.parseDateTime(makeDate).before(StringUtil.parseDateTime(operationStartDate))) {
+                if (((StringUtil.isNotBlank(makeTitle) && (makeTitle.contains("主刀") || (StringUtil.isNotBlank(operationName) && makeTitle.contains(operationName))))
+                        || (StringUtil.isNotBlank(writTitle) && writTitle.contains("主刀"))
                         || ((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("术前")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("术前"))))) {
                     return;
                 }

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/shengzhouyy/OperationDocTrans.java

@@ -127,6 +127,7 @@ public class OperationDocTrans extends ModelDocTrans {
 
         OperationDiscussionDoc operationDiscussionDoc = new OperationDiscussionDoc();
         operationDiscussionDoc.setStructureMap(structureMap);
+        operationDiscussionDoc.setText(structureMap.get("原始文本"));
         operationDiscussionDoc.setPageData((Map) structureMap);
 
         return operationDiscussionDoc;