Explorar el Código

手术及死亡规则更新

kongwz hace 5 años
padre
commit
cfdbeb08a5

+ 49 - 33
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0097.java

@@ -1,34 +1,50 @@
-package com.lantone.qc.kernel.catalogue.deathcasediscuss;
-
-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;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : DEAC0097
- * @Description : 死亡患者无死亡记录
- * @Author : 楼辉荣
- * @Date: 2020-03-06 17:28
- */
-@Component
-public class DEAC0097 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        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;
-            }
-            if (inputInfo.getDeathRecordDoc() == null || inputInfo.getDeathRecordDoc().getStructureMap().size() == 0){
-                status.set("-1");
-            }
-        }
-    }
+package com.lantone.qc.kernel.catalogue.deathcasediscuss;
+
+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;
+import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : DEAC0097
+ * @Description : 死亡患者无死亡记录
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class DEAC0097 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<String> deathRecords = new ArrayList<>();
+        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        if (doctorAdviceDocs.size() == 0 ) {
+            return;
+        }
+        for (DoctorAdviceDoc dad:doctorAdviceDocs) {
+            if(dad.getStructureMap().get("医嘱项目名称").contains("死亡")){
+                deathRecords.add(dad.getStructureMap().get("医嘱项目名称"));
+            }
+        }
+        if(deathRecords != null && deathRecords.size()>0 && inputInfo.getDeathRecordDoc() == null){
+            status.set("-1");
+        }
+        /*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;
+            }
+            if (inputInfo.getDeathRecordDoc() == null || inputInfo.getDeathRecordDoc().getStructureMap().size() == 0){
+                status.set("-1");
+            }
+        }*/
+    }
 }

+ 34 - 33
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0108.java

@@ -1,34 +1,35 @@
-package com.lantone.qc.kernel.catalogue.deathcasediscuss;
-
-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;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : DEAC0108
- * @Description : 死亡患者无死亡病例讨论记录
- * @Author : 胡敬
- * @Date: 2020-03-19 11:24
- */
-@Component
-public class DEAC0108 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        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;
-            }
-            if (inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0){
-                status.set("-1");
-            }
-        }
-    }
+package com.lantone.qc.kernel.catalogue.deathcasediscuss;
+
+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;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : DEAC0108
+ * @Description : 死亡患者无死亡病例讨论记录
+ * @Author : 胡敬
+ * @Date: 2020-03-19 11:24
+ */
+@Component
+public class DEAC0108 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        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;
+            }
+            if ((inputInfo.getDeathCaseDiscussDoc() == null || inputInfo.getDeathCaseDiscussDoc().getStructureMap().size() == 0)
+            && outWay.contains("死亡")){
+                status.set("-1");
+            }
+        }
+    }
 }

+ 38 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0313.java

@@ -0,0 +1,38 @@
+package com.lantone.qc.kernel.catalogue.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.DoctorAdviceDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationDoc;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * @Description: 缺手术安全核查表 ,前提要有手术记录
+ * @author: kwz
+ * @time: 2020/06/29 11:22
+ */
+@Component
+public class OPE0313 extends QCCatalogue {
+
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
+        status.set("0");
+        //先判断有无手术记录
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+
+        if(operationDocs != null && operationDocs.size()>0){
+            long count_oper = operationDocs.stream().map(i -> i.getOperationRecordDoc()).filter(i -> i != null).count();
+
+            long count_safe = operationDocs.stream().map(i -> i.getOperationSafetyChecklistDoc()).filter(i -> i != null).count();
+            if(count_oper>0 && count_safe ==0){
+                status.set("-1");
+            }
+        }
+
+    }
+
+}

+ 4 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0648.java

@@ -33,14 +33,14 @@ public class OPE0648 extends QCCatalogue {
                 long count = operationDocs.stream().filter(operationDoc -> {
                     boolean flag = false;
                     if (operationDoc.getOperationRecordDoc() != null) {
-                        String surgeon = operationDoc.getOperationRecordDoc().getStructureMap().get("主刀医师");
+                        String surgeon = operationDoc.getOperationRecordDoc().getStructureMap().get("主刀医师签名");
                         String assist1 = operationDoc.getOperationRecordDoc().getStructureMap().get("一助");
                         String asssit2 = operationDoc.getOperationRecordDoc().getStructureMap().get("助手II");
-                        String signature = operationDoc.getOperationRecordDoc().getStructureMap().get("医生");
+                        String signature = operationDoc.getOperationRecordDoc().getStructureMap().get("手术医师");
 
-                        String operator = surgeon + ", " + assist1 + ", " + asssit2;
+                        String operator = signature + ", " + assist1 + ", " + asssit2;
 
-                        if (!operator.contains(signature)) {
+                        if (!operator.contains(surgeon)) {
                             flag = true;
                         }
                     }

+ 5 - 3
trans/src/main/java/com/lantone/qc/trans/shaoyf/ShaoyfOperationDocTrans.java

@@ -151,11 +151,13 @@ public class ShaoyfOperationDocTrans extends ModelDocTrans {
     private List<String> operationRecord_keyContrasts = Lists.newArrayList(
             "结束时间=手术结束时间",
             "开始时间=手术开始时间",
-            "手术医师=主刀医师",
+            "医生=主刀医师签名",
             "助手=一助",
-            "助手II=二助",
+//            "助手II=二助",
             "补救措施1=补救措施",
-            "本人姓名=姓名"
+            "本人姓名=姓名",
+            "二助=助手II"
+//            "医生=手术医师"
     );