浏览代码

禅道修改bug

hujing 5 年之前
父节点
当前提交
aa9f03e3a3
共有 29 个文件被更改,包括 228 次插入74 次删除
  1. 11 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java
  2. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0074.java
  3. 5 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0099.java
  4. 54 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0338.java
  5. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0158.java
  6. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0160.java
  7. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0161.java
  8. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0173.java
  9. 13 12
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0187.java
  10. 3 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0193.java
  11. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0220.java
  12. 4 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0225.java
  13. 38 4
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0272.java
  14. 9 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0516.java
  15. 8 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0517.java
  16. 8 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0518.java
  17. 8 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0519.java
  18. 9 7
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0520.java
  19. 0 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0126.java
  20. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0127.java
  21. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0128.java
  22. 2 3
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0144.java
  23. 1 0
      kernel/src/main/java/com/lantone/qc/kernel/structure/ai/LeaveHospitalAI.java
  24. 1 1
      kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessLeaveHospital.java
  25. 10 7
      kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessThreeLevelWard.java
  26. 1 1
      public/src/main/java/com/lantone/qc/pub/Content.java
  27. 6 1
      trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouBeHospitalizedDocTrans.java
  28. 1 0
      trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouDeathCaseDiscussDocTrans.java
  29. 16 12
      trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouFirstPageRecordDocTrans.java

+ 11 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0058.java

@@ -4,12 +4,14 @@ 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.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.entity.Family;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
 /**
@@ -26,6 +28,9 @@ public class BEH0058 extends QCCatalogue {
             status.set("0");
             return;
         }
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        Map<String, String> structureMap = beHospitalizedDoc.getStructureMap();
+        String familyMembersHealth = structureMap.get("家庭成员健康情况");
         List<Family> familyList = Lists.newArrayList();
         List<Family> familiesFl = inputInfo.getBeHospitalizedDoc().getFamilyLabel().getFamilies();
         List<Family> familiesMl = inputInfo.getBeHospitalizedDoc().getMaritalLabel().getFamily();
@@ -37,6 +42,12 @@ public class BEH0058 extends QCCatalogue {
         }
 
         Pattern p = Pattern.compile("[儿子女]");
+        if (StringUtil.isNotBlank(familyMembersHealth)){
+            if (p.matcher(familyMembersHealth).find()){
+                status.set("0");
+                return;
+            }
+        }
         long count = familyList
                 .stream()
                 .filter(

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0074.java

@@ -27,6 +27,10 @@ public class BEH0074 extends QCCatalogue {
         }
         if (inputInfo.getBeHospitalizedDoc().getFamilyLabel() != null) {
             FamilyLabel familyLabel = inputInfo.getBeHospitalizedDoc().getFamilyLabel();
+            if (familyLabel == null){
+                status.set("0");
+                return;
+            }
             List<Family> families = familyLabel.getFamilies();
             for (Family family : families) {
                 if (family.getTumour() != null) {

+ 5 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0099.java

@@ -10,7 +10,7 @@ import java.util.Map;
 
 /**
  * @ClassName : DEAC0099
- * @Description : 死亡病例讨论记录中无主诉
+ * @Description : 死亡病例讨论记录中无主诉
  * @Author : 胡敬
  * @Date: 2020-03-19 09:35
  */
@@ -31,6 +31,10 @@ public class DEAC0099 extends QCCatalogue {
             if (!admissionStatus.contains(chiefText)) {
                 status.set("-1");
             }
+            //处理台州的
+            if (admissionStatus.contains("患者因")) {
+                status.set("0");
+            }
         }
     }
 }

+ 54 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0338.java

@@ -0,0 +1,54 @@
+package com.lantone.qc.kernel.catalogue.deathrecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.kernel.util.KernelConstants;
+import com.lantone.qc.kernel.util.RedisUtil;
+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.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : DEAR0338
+ * @Description : 死亡记录无副主任医师审核签名
+ * @Author : 胡敬
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class DEAR0338 extends QCCatalogue {
+    @Autowired
+    private RedisUtil redisUtil;
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getDeathRecordDoc() == null) {
+            status.set("0");
+            return;
+        }
+        Map<String, String> deathRecordStructure = inputInfo.getDeathRecordDoc().getStructureMap();
+        String recordDoctor = deathRecordStructure.get("记录医师");
+        if (StringUtil.isNotBlank(recordDoctor)) {
+            if (findDirectorDoctor(recordDoctor)) {
+                status.set("0");
+            }
+        }
+    }
+
+    private boolean findDirectorDoctor(String recordDoctor) {
+        Map<String, Map<String, Object>> hospitalDoctorMap = redisUtil.getJsonStringValue(KernelConstants.HOSPITAL_DOCTOR_MAP);
+        if (hospitalDoctorMap == null) {
+            return false;
+        }
+        if (hospitalDoctorMap.containsKey(recordDoctor)) {
+            Object professor = hospitalDoctorMap.get(recordDoctor).get("professor");
+            if (professor != null) {
+                return professor.toString().contains("主任");
+            }
+        }
+        return false;
+    }
+}

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0158.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 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.Map;
@@ -25,6 +26,9 @@ public class FIRP0158 extends QCCatalogue {
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionName = firstpageStructureMap.get(Content.name);
             String admissionName = beHospitalStructureMap.get(Content.name);
+            if (StringUtil.isBlank(firstAdmissionName) || StringUtil.isBlank(admissionName)){
+                return;
+            }
             if (!CatalogueUtil.compareToken(firstAdmissionName, admissionName)) {
                 status.set("-1");
             }

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0160.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 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.Map;
@@ -25,6 +26,9 @@ public class FIRP0160 extends QCCatalogue {
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionGender = firstpageStructureMap.get(Content.gender);
             String admissionGender = beHospitalStructureMap.get(Content.gender);
+            if (StringUtil.isBlank(firstAdmissionGender) || StringUtil.isBlank(admissionGender)){
+                return;
+            }
             if (!CatalogueUtil.compareToken(firstAdmissionGender,admissionGender)) {
                 status.set("-1");
             }

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0161.java

@@ -26,6 +26,10 @@ public class FIRP0161 extends QCCatalogue {
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String firstAdmissionAge = firstpageStructureMap.get(Content.age);
             String admissionAge = beHospitalStructureMap.get(Content.age);
+            if (StringUtil.isBlank(firstAdmissionAge) || StringUtil.isBlank(admissionAge)){
+                status.set("0");
+                return;
+            }
             firstAdmissionAge = removalUnit(firstAdmissionAge);
             admissionAge = removalUnit(admissionAge);
             if (!CatalogueUtil.compareToken(firstAdmissionAge, admissionAge)) {

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0173.java

@@ -39,6 +39,7 @@ public class FIRP0173 extends QCCatalogue {
             for (Diag diag : presentDiags) {
                 if(diag.getHospitalDiagName().equals(outpatientEmergencyDiag)){
                     status.set("0");
+                    return;
                 }
             }
             List<Diag> presentPossibleDiag = presentDiags.stream().filter(diag -> diag.getPossible() != null).collect(Collectors.toList());

+ 13 - 12
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0187.java

@@ -20,18 +20,19 @@ import java.util.Map;
 @Component
 public class FIRP0187 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String outWay = firstpageStructureMap.get(Content.outWay);
-            String deadAutopsy = firstpageStructureMap.get(Content.deadAutopsy);
-            if (StringUtils.isEmpty(outWay) && StringUtils.isEmpty(deadAutopsy) ) {
-                status.set("0");
-                return;
-            }
-            if (StringUtil.isNotEmpty(outWay) && outWay.contains("死亡") && StringUtil.isNotEmpty(deadAutopsy)){
-                status.set("0");
-                return;
-            }
+        if (inputInfo.getFirstPageRecordDoc() == null) {
+            status.set("0");
+            return;
+        }
+        Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        String outWay = firstpageStructureMap.get(Content.outWay);
+        String deadAutopsy = firstpageStructureMap.get(Content.deadAutopsy);
+        if (StringUtils.isEmpty(outWay) && StringUtils.isEmpty(deadAutopsy)) {
+            status.set("0");
+            return;
+        }
+        if (StringUtil.isNotEmpty(outWay) && outWay.contains("死亡") && StringUtil.isNotEmpty(deadAutopsy)) {
+            status.set("0");
         }
     }
 }

+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0193.java

@@ -27,6 +27,9 @@ public class FIRP0193 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null){
+            return;
+        }
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         List<String> operations = new ArrayList<>();
         List<String> operations_first = new ArrayList<>();

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0220.java

@@ -32,6 +32,7 @@ public class FIRP0220 extends QCCatalogue {
             String firstAdmissionDate = firstpageStructureMap.get(Content.admisTime);
             String admissionDate = beHospitalStructureMap.get(Content.admisDate);
             if (StringUtil.isEmpty(firstAdmissionDate) || StringUtil.isEmpty(admissionDate)) {
+                status.set("0");
                 return;
             }
             Date firstDate = StringUtil.parseDateTime(firstAdmissionDate);

+ 4 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0225.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 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.Map;
@@ -25,6 +26,9 @@ public class FIRP0225 extends QCCatalogue {
             Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
             String firstDischargeTime = firstpageStructureMap.get(Content.dischargeTime);//病案首页出院时间
             String dischargeTime = leaveHospitalStructureMap.get(Content.dischargeTime);//出院小结出院时间
+            if (StringUtil.isBlank(firstDischargeTime) || StringUtil.isBlank(dischargeTime)){
+                return;
+            }
             if (!CatalogueUtil.equalsDate(firstDischargeTime, dischargeTime, "yyyy-MM-dd")) {
                 status.set("-1");
             }

+ 38 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0272.java

@@ -1,7 +1,7 @@
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 
+import com.alibaba.fastjson.JSONObject;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
@@ -12,6 +12,7 @@ import com.lantone.qc.pub.model.label.DiagLabel;
 import com.lantone.qc.pub.util.ListUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -24,7 +25,7 @@ import java.util.Map;
 @Component
 public class FIRP0272 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() == null){
+        if (inputInfo.getFirstPageRecordDoc() == null) {
             status.set("0");
             return;
         }
@@ -33,17 +34,19 @@ public class FIRP0272 extends QCCatalogue {
         if (leaveHospitalDoc != null) {
             Map<String, Object> firstPageMap = firstPageRecordDoc.getStructureExtMap();
             if (firstPageMap != null) {
-                List<String> outDiags = (List<String>) firstPageMap.get(Content.dischargeDiag);
+                List<JSONObject> outDiags = (List<JSONObject>) firstPageMap.get(Content.dischargeDiag);
                 if (ListUtil.isEmpty(outDiags)) {
                     status.set("0");
                     return;
                 }
+                List<String> jsonDiagList = getJsonDiagList(outDiags);
                 DiagLabel leaveDiagLabel = leaveHospitalDoc.getLeaveDiagLabel();
                 if (leaveDiagLabel != null) {
                     //出院诊断
                     List<Diag> diags = leaveDiagLabel.getDiags();
                     if (diags != null) {
-                        if (outDiags.size() == diags.size() && outDiags.containsAll(diags)) {
+                        List<String> diagList = getDiagList(diags);
+                        if (jsonDiagList.size() == diagList.size() && isOrder(jsonDiagList, diagList)) {
                             status.set("0");
                         }
                     } else {
@@ -53,4 +56,35 @@ public class FIRP0272 extends QCCatalogue {
             }
         }
     }
+
+    private boolean isOrder(List<String> firstList, List<String> secondList) {
+        for (int i = 0; i < firstList.size(); i++) {
+            if (!firstList.get(i).equals(secondList.get(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private List<String> getJsonDiagList(List<JSONObject> diags) {
+        List<String> diagList = new ArrayList<>();
+        for (JSONObject diag : diags) {
+            if (diag.get(Content.diagnoseName) != null) {
+                diagList.add(diag.get(Content.diagnoseName).toString());
+            }
+        }
+        return diagList;
+    }
+
+    private List<String> getDiagList(List<Diag> diags) {
+        List<String> diagList = new ArrayList<>();
+        for (Diag diag : diags) {
+            if (diag.getHospitalDiagName() != null) {
+                diagList.add(diag.getHospitalDiagName());
+            } else if (diag.getName() != null) {
+                diagList.add(diag.getName());
+            }
+        }
+        return diagList;
+    }
 }

+ 9 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0516.java

@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -26,7 +27,14 @@ public class FIRP0516 extends QCCatalogue {
         if(beHospitalizedDoc != null && firstPageRecordDoc != null){
             Map<String, String> structureMap_bh = beHospitalizedDoc.getStructureMap();
             Map<String, String> structureMap_fpr = firstPageRecordDoc.getStructureMap();
-
+            String bhIdNumber = structureMap_bh.get(Content.idNumber);
+            String fprIdNumber = structureMap_fpr.get(Content.idNumber);
+            if (StringUtil.isBlank(bhIdNumber) || StringUtil.isBlank(fprIdNumber)){
+                return;
+            }
+            if (!bhIdNumber.equals(fprIdNumber)){
+                status.set("-1");
+            }
         }
     }
 }

+ 8 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0517.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -21,17 +22,17 @@ public class FIRP0517 extends QCCatalogue {
         status.set("0");
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
-        if(beHospitalizedDoc != null && firstPageRecordDoc != null){
+        if (beHospitalizedDoc != null && firstPageRecordDoc != null) {
             Map<String, String> structureMap_bh = beHospitalizedDoc.getStructureMap();
             Map<String, String> structureMap_fpr = firstPageRecordDoc.getStructureMap();
-            if(structureMap_bh.get("出生日期") != null && structureMap_fpr.get("出生日期") != null){
-                if(!structureMap_bh.get("出生日期").equals(structureMap_fpr.get("出生日期"))){
-                    status.set("-1");
-                }
-            }else{
+            String bhBirthDay = structureMap_bh.get("出生日期");
+            String fprBirthDay = structureMap_fpr.get("出生日期");
+            if (StringUtil.isBlank(bhBirthDay) || StringUtil.isBlank(fprBirthDay)) {
+                return;
+            }
+            if (!bhBirthDay.equals(fprBirthDay)) {
                 status.set("-1");
             }
-
         }
     }
 }

+ 8 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0518.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -21,17 +22,17 @@ public class FIRP0518 extends QCCatalogue {
         status.set("0");
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
-        if(beHospitalizedDoc != null && firstPageRecordDoc != null){
+        if (beHospitalizedDoc != null && firstPageRecordDoc != null) {
             Map<String, String> structureMap_bh = beHospitalizedDoc.getStructureMap();
             Map<String, String> structureMap_fpr = firstPageRecordDoc.getStructureMap();
-            if(structureMap_bh.get("民族") != null && structureMap_fpr.get("民族") != null){
-                if(!structureMap_bh.get("民族").equals(structureMap_fpr.get("民族"))){
-                    status.set("-1");
-                }
-            }else{
+            String bhNation = structureMap_bh.get("民族");
+            String fprNation = structureMap_fpr.get("民族");
+            if (StringUtil.isBlank(bhNation) || StringUtil.isBlank(fprNation)) {
+                return;
+            }
+            if (!bhNation.equals(fprNation)) {
                 status.set("-1");
             }
-
         }
     }
 }

+ 8 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0519.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -21,17 +22,17 @@ public class FIRP0519 extends QCCatalogue {
         status.set("0");
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
-        if(beHospitalizedDoc != null && firstPageRecordDoc != null){
+        if (beHospitalizedDoc != null && firstPageRecordDoc != null) {
             Map<String, String> structureMap_bh = beHospitalizedDoc.getStructureMap();
             Map<String, String> structureMap_fpr = firstPageRecordDoc.getStructureMap();
-            if(structureMap_bh.get("户口地址") != null && structureMap_fpr.get("户口地址") != null){
-                if(!structureMap_bh.get("户口地址").equals(structureMap_fpr.get("户口地址"))){
-                    status.set("-1");
-                }
-            }else{
+            String bhAddress = structureMap_bh.get("户口地址");
+            String fprAddress = structureMap_fpr.get("户口地址");
+            if (StringUtil.isBlank(bhAddress) || StringUtil.isBlank(fprAddress)) {
+                return;
+            }
+            if (!bhAddress.equals(fprAddress)) {
                 status.set("-1");
             }
-
         }
     }
 }

+ 9 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0520.java

@@ -1,10 +1,12 @@
 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.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -21,17 +23,17 @@ public class FIRP0520 extends QCCatalogue {
         status.set("0");
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
-        if(beHospitalizedDoc != null && firstPageRecordDoc != null){
+        if (beHospitalizedDoc != null && firstPageRecordDoc != null) {
             Map<String, String> structureMap_bh = beHospitalizedDoc.getStructureMap();
             Map<String, String> structureMap_fpr = firstPageRecordDoc.getStructureMap();
-            if(structureMap_bh.get("电话") != null && structureMap_fpr.get("电话") != null){
-                if(!structureMap_bh.get("电话").equals(structureMap_fpr.get("电话"))){
-                    status.set("-1");
-                }
-            }else{
+            String bhPhone = structureMap_bh.get("电话");
+            String fprPhone = structureMap_fpr.get(Content.current_address_phone);
+            if (StringUtil.isBlank(bhPhone) || StringUtil.isBlank(fprPhone)) {
+                return;
+            }
+            if (!bhPhone.equals(fprPhone)) {
                 status.set("-1");
             }
-
         }
     }
 }

+ 0 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0126.java

@@ -22,7 +22,6 @@ import java.util.Map;
 @Component
 public class THR0126 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
         if (inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null
                 && inputInfo.getThreeLevelWardDocs().size() > 0) {
             Map<String, String> getLeaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0127.java

@@ -66,7 +66,7 @@ public class THR0127 extends QCCatalogue {
                 if (CatalogueUtil.isEmpty(roundRecordThisWeek)) {
                     break;
                 }
-                lastWardDateRange = DateUtil.formatDate(beginDate) + "    ->    " + DateUtil.formatDate(DateUtil.addDate(beginDate, 7));
+                lastWardDateRange = DateUtil.formatDate(beginDate) + "    ->    " + DateUtil.formatDate(DateUtil.addDate(beginDate, 6));
                 roundRecordEveryWeek.add(roundRecordThisWeek);
                 beginDate = DateUtil.addDate(beginDate, 7);
                 i++;

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0128.java

@@ -73,7 +73,7 @@ public class THR0128 extends QCCatalogue {
                 if (CatalogueUtil.isEmpty(roundRecordThisWeek)) {
                     break;
                 }
-                lastWardDateRange = DateUtil.formatDate(beginDate) + "    ->    " + DateUtil.formatDate(DateUtil.addDate(beginDate, 7));
+                lastWardDateRange = DateUtil.formatDate(beginDate) + "    ->    " + DateUtil.formatDate(DateUtil.addDate(beginDate, 6));
                 roundRecordEveryWeek.add(roundRecordThisWeek);
                 beginDate = DateUtil.addDate(beginDate, 7);
                 i++;

+ 2 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0144.java

@@ -35,9 +35,8 @@ public class THR0144 extends QCCatalogue {
         String conditionRecord = structureMap.get("病情记录");
         String treatmentPlan = structureMap.get("治疗计划和措施");
         String title = structureMap.get("查房标题");
-        if (StringUtil.isBlank(conditionRecord) && StringUtil.isBlank(treatmentPlan)) {
-            return;
-        }
+        conditionRecord = StringUtil.isBlank(conditionRecord)?"":conditionRecord;
+        treatmentPlan = StringUtil.isBlank(treatmentPlan)?"":treatmentPlan;
         if ((conditionRecord.contains("出院") || treatmentPlan.contains("出院"))
                 && StringUtil.isNotBlank(title)
                 && (CatalogueUtil.subTitle(title).contains(Content.attend) || CatalogueUtil.subTitle(title).contains(Content.director))) {

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/LeaveHospitalAI.java

@@ -78,6 +78,7 @@ public class LeaveHospitalAI extends ModelAI {
         if (inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel() == null) {
             DiagLabel diagLabel = new DiagLabel();
             diagLabel.setDiags(leaveHospitalLabel.getDiags());
+            inputInfo.getLeaveHospitalDoc().setLeaveDiagLabel(diagLabel);
         } else {
             inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel().setDiags(leaveHospitalLabel.getDiags());
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessLeaveHospital.java

@@ -62,7 +62,7 @@ public class EntityProcessLeaveHospital extends EntityProcess {
         List<Diag> diags = new ArrayList<>();
         for (Lemma lemma : diagLemmas) {
             Diag diag = new Diag();
-            diag.setName(lemma.getText());
+            diag.setHospitalDiagName(lemma.getText());
             diags.add(diag);
         }
         leaveHospitalLabel.setDiags(diags);

+ 10 - 7
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessThreeLevelWard.java

@@ -87,7 +87,7 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
 
         //没有诊断依据和鉴别诊断情况下,添加诊断
         if (titleText.get(EntityEnum.TITLE_FOR_DIAG_BASIS.toString()) == null
-                && titleText.get(EntityEnum.TITLE_FOR_DIFF.toString()) == null){
+                && titleText.get(EntityEnum.TITLE_FOR_DIFF.toString()) == null) {
             //补充诊断/初步诊断/修正诊断
             addDiag(threeLevelWardLabel, diagLemmas);
         }
@@ -179,7 +179,7 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
         String subContentIndex = "", title = "";
         for (int i = 0; i < lemmaList.size(); i++) {
             lemma = lemmaList.get(i);
-            if (!titleList.contains(lemma.getProperty())) {
+            if (!titleList.contains(lemma.getProperty()) && i != lemmaList.size() - 1) {
                 continue;
             }
             if (i != lemmaList.size() - 1) {
@@ -194,14 +194,16 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
                 }
             } else {
                 //将倒数第二个标题存入结构
-                subContentIndex = start + lemma.getText().length() + 1 + "," + Integer.parseInt(lemma.getPosition());
+                subContentIndex = start + "," + Integer.parseInt(lemma.getPosition());
                 putSubContent(titleText, title, subContentIndex);
                 //如果是最后一个Lemma,文本就从当前lemma的position开始取,取到结束
                 title = lemma.getProperty();//截取的这一段文本的标题
-                start = Integer.parseInt(lemma.getPosition());
-                int lastIndex = content.length() - 1;
-                subContentIndex = start + "," + lastIndex;
-                putSubContent(titleText, title, subContentIndex);
+                if (titleList.contains(title)) {
+                    start = Integer.parseInt(lemma.getPosition());
+                    int lastIndex = content.length() - 1;
+                    subContentIndex = start + "," + lastIndex;
+                    putSubContent(titleText, title, subContentIndex);
+                }
             }
         }
         return titleText;
@@ -270,6 +272,7 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
 
     /**
      * 没有诊断依据和鉴别诊断情况下,添加诊断
+     *
      * @param threeLevelWardLabel
      * @param diagLemmas
      */

+ 1 - 1
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -152,7 +152,7 @@ public class Content {
     public static final String contact_phone = "联系人电话";
 
     public static final String diagnose_cts = "诊断符合情况";
-    public static final String o_i = "门诊与院";
+    public static final String o_i = "门诊与院";
     public static final String i_o = "入院与出院";
     public static final String ob_oa = "术前与术后";
     public static final String clinical_pathology = "临床与病理";

+ 6 - 1
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouBeHospitalizedDocTrans.java

@@ -17,6 +17,7 @@ import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.taizhou.util.TzXmlUtil;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.List;
 import java.util.Map;
@@ -39,6 +40,10 @@ public class TaiZhouBeHospitalizedDocTrans extends ModelDocTrans {
 
         Map<String, String> sourceMap = TzXmlUtil.getXmlToMapForTZWithReplace(content); // xml原始数据给华卓
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
+        //如果有入院时间,优先使用
+        if (StringUtils.isEmpty(structureMap.get("入院时间")) && StringUtils.isNotEmpty(structureMap.get("入病房时间"))) {
+            structureMap.put("入院时间", structureMap.get("入病房时间"));
+        }
 
         BeHospitalizedDoc beHospitalizedDoc = beHospitalizedDocGen(structureMap); // 不走共用
         beHospitalizedDoc.setPageData((Map)sourceMap);
@@ -53,7 +58,7 @@ public class TaiZhouBeHospitalizedDocTrans extends ModelDocTrans {
             "职业=职业",
             "出生地址=出生地",
             "出生、生长史=居住地",
-            "婚姻=婚姻",
+            "婚姻状况=婚姻",
             "地址=联系地址",
             "信息来源=病史陈述者",
             "生日=出生日期",

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouDeathCaseDiscussDocTrans.java

@@ -68,6 +68,7 @@ public class TaiZhouDeathCaseDiscussDocTrans extends ModelDocTrans {
             "临床科室=",
             "审核=",
             "病历状态=",
+            "医生=记录医师",
             "体温(耳)="
     );
 

+ 16 - 12
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouFirstPageRecordDocTrans.java

@@ -8,6 +8,7 @@ import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.List;
 import java.util.Map;
@@ -27,6 +28,10 @@ public class TaiZhouFirstPageRecordDocTrans extends ModelDocTrans {
         FirstPageRecordDoc firstPageRecordDoc = new FirstPageRecordDoc();
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(content, keyContrasts);
         firstPageRecordDoc.setStructureMap(structureMap);
+        //如果有入院时间,优先使用
+        if (StringUtils.isEmpty(structureMap.get("入院时间")) && StringUtils.isNotEmpty(structureMap.get("病人入院日期"))) {
+            structureMap.put("入院时间", structureMap.get("病人入院日期"));
+        }
 
         Map<String, Object> structureExtMap = Maps.newHashMap();
         structureExtMap.putAll(content);
@@ -120,7 +125,7 @@ public class TaiZhouFirstPageRecordDocTrans extends ModelDocTrans {
 //            "临床路径管理 1.完成 2.变异 3.退出 4.未入=临床路径管理",
 //            "有无药物过敏=药物过敏",
 //            "单病种管理 1.是 2.否=单病种管理",
-            "病人联系电话=现住址电话",
+            "现住址电话=现住址电话",
             "拟接收医疗机构名称=",
             "科主任=",
             "中成药费=",
@@ -146,11 +151,11 @@ public class TaiZhouFirstPageRecordDocTrans extends ModelDocTrans {
             "其它过敏=",
             "审核人=",
             "病理诊断=",
-            "放射与病理符合=放射与病理",
+//            "放射与病理符合=放射与病理",
             "医院=",
             "就诊类别=",
             "籍贯=",
-            "门诊与出院符合=门诊与出院",
+//            "门诊与出院符合=门诊与出院",
             "麻醉医师=",
             "实习医生=",
             "HIV-Ab=",
@@ -174,7 +179,7 @@ public class TaiZhouFirstPageRecordDocTrans extends ModelDocTrans {
             "HBsAg=",
             "手术记录=",
             "单病种管理=",
-            "临床与病理符合=临床与病理",
+//            "临床与病理符合=临床与病理",
             "麻醉费=",
             "康复费=",
             "研究生=",
@@ -185,7 +190,7 @@ public class TaiZhouFirstPageRecordDocTrans extends ModelDocTrans {
             "医疗付费方式=",
             "其它诊断=",
             "是否进入临床路径=",
-            "入院与出院符合=入院与出院",
+//            "入院与出院符合=入院与出院",
             "诊断治疗信息=",
             "抢救次数=",
             "入院诊断=",
@@ -233,13 +238,12 @@ public class TaiZhouFirstPageRecordDocTrans extends ModelDocTrans {
             "本人工作单位电话=",
             "工作单位邮政编码=",
             "病理号=",
-            "病人入院日期=入院时间",
-            "病人出生日期=出生日期",
-            "门诊与出院符合 0.未做 1.符合 2.不符合 3.不确定=门诊与出院",
-            "入院与出院符合 0.未做 1.符合 2.不符合 3.不确定=入院与出院",
-            "术前与术后符合 0.未做 1.符合 2.不符合 3.不确定=术前与术后",
-            "临床与病理符合 0.未做 1.符合 2.不符合 3.不确定=临床与病理",
-            "放射与病理符合0.未做 1.符合 2.不符合 3.不确定=放射与病理"
+            "病人出生日期=出生日期"
+//            "门诊与出院符合 0.未做 1.符合 2.不符合 3.不确定=门诊与出院",
+//            "入院与出院符合 0.未做 1.符合 2.不符合 3.不确定=入院与出院",
+//            "术前与术后符合 0.未做 1.符合 2.不符合 3.不确定=术前与术后",
+//            "临床与病理符合 0.未做 1.符合 2.不符合 3.不确定=临床与病理",
+//            "放射与病理符合0.未做 1.符合 2.不符合 3.不确定=放射与病理"
     );
 
 }