瀏覽代碼

北仑-手术无术前讨论优化-冠状动脉造影术

wangsy 4 年之前
父節點
當前提交
038cc937ee

+ 14 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/preoperativediscussion/PRE0328.java

@@ -4,6 +4,7 @@ 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.DoctorAdviceDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
 import com.lantone.qc.pub.util.DateUtil;
@@ -11,11 +12,7 @@ import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @Description: 手术患者无术前讨论记录
@@ -33,6 +30,7 @@ public class PRE0328 extends QCCatalogue {
          * 3:如果手术记录次数(第一次手术的日期内有其他手术不算次数) 大于 术前讨论、术前小结次数,则出错
          */
         status.set("0");
+        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         if (operationDocs == null || operationDocs.size() == 0) {
             return;
@@ -64,12 +62,23 @@ public class PRE0328 extends QCCatalogue {
                 j++;
             }
         }
+        //医嘱中包含“冠状动脉造影术”,且无术前讨论.则报规则
+        for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
+            Map<String,String> doctorAdviceStructuerMap = doctorAdviceDoc.getStructureMap();
+            String advicename = doctorAdviceStructuerMap.get("医嘱项目名称");
+            if(StringUtil.isNotBlank(advicename) && advicename.contains("冠状动脉造影术") &&  j==0){
+                status.set("-1");
+                info.set("手术记录不一致");
+            }
+        }
         /* 如果入院时间-手术开始时间小于30分钟,则术前讨论、术前小结次数+1*/
         if (emergencyOperation) {
             if (j == 0) {
                 j++;
             }
         }
+
+
         if (i > 0 && i > j) {
             status.set("-1");
             info.set("手术记录不一致");