Procházet zdrojové kódy

xy质控类型:24小时内入院死亡记录 规则調整:死亡患者无死亡病例讨论记录、死亡病例讨论记录未在患者死亡1周内完成、缺入院病情告知书

chengyao před 3 roky
rodič
revize
38c86b10ab

+ 14 - 19
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/deathcasediscuss/DEAC0108.java

@@ -22,26 +22,21 @@ import java.util.Map;
 public class DEAC0108 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+
+        if (inputInfo.getFirstPageRecordDoc() == null || inputInfo.getFirstPageRecordDoc().getStructureMap() == null) {
+            return;
+        }
         DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> FirstPageStructure = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            String outWay = FirstPageStructure.get(Content.outWay);
-            //判断患者是否死亡
-            if (CatalogueUtil.isEmpty(outWay) || !outWay.contains("死亡")) {
-                return;
-            }
-            List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
-            if (doctorAdviceDocs.size() == 0) {
-                return;
-            }
-            long count = doctorAdviceDocs.stream().filter(x -> x.getStructureMap().get("医嘱项目名称").contains("死亡")).count();
-            if ((count > 0 || outWay.contains("死亡")) && (inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)) {
-                status.set("-1");
-            }
-            if ((inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)
-                    && deathRecordDoc != null) {
-                status.set("-1");
-            }
+        Map<String, String> FirstPageStructure = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        String outWay = FirstPageStructure.get(Content.outWay);
+        String medicalOrderName = FirstPageStructure.get(Content.medicalOrderName);
+
+
+        if (((!CatalogueUtil.isEmpty(medicalOrderName) && medicalOrderName.contains("死亡") && (!medicalOrderName.contains("死亡蛋白") ||
+                (!CatalogueUtil.isEmpty(outWay) && outWay.contains("死亡")))) || deathRecordDoc != null) &&
+                (inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)) {
+            status.set("-1");
+            return;
         }
     }
 }

+ 5 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/deathcasediscuss/DEAC0109.java

@@ -6,6 +6,7 @@ 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.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -23,7 +24,11 @@ public class DEAC0109 extends QCCatalogue {
         status.set("0");
         if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null) {
             Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
+            Map<String, String> deathCaseRecordStructureMap = inputInfo.getDeathRecordDoc().getStructureMap();
             String deceaseTime = deathCaseDiscussStructureMap.get("死亡时间");
+            if(CatalogueUtil.isEmpty(deceaseTime)){
+                deceaseTime =  deathCaseRecordStructureMap.get("死亡时间");
+            }
             String key = getKeyByHospitalId();
             String recordTime = deathCaseDiscussStructureMap.get(key);
             if (CatalogueUtil.isEmpty(deceaseTime) || CatalogueUtil.isEmpty(recordTime)) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/medicalwriting/MEDI02890.java

@@ -23,7 +23,7 @@ public class MEDI02890 extends QCCatalogue {
             return;
         }
         Map<String, String> structureMap = noticeOfConversationDoc.getStructureMap();
-        if (structureMap.containsKey("入院病情告知书")){
+        if (structureMap.containsKey("入院病情告知书") || structureMap.containsKey("入院医患谈话记录")){
             status.set("0");
         }
     }