소스 검색

病案首页手术中麻醉记录是否填写

wangsy 3 년 전
부모
커밋
e3a0384b12

+ 72 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03196.java

@@ -0,0 +1,72 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.google.common.collect.Lists;
+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.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03196
+ * @Description :  主要手术及操作麻醉方式未填写
+ * @Author : wsy
+ * @Date: 2022-2-9 15:51
+ */
+@Component
+public class FIRP03196 extends QCCatalogue {
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null) {
+            return;
+        }
+        Map<String, Object> structureExtMap = firstPageRecordDoc.getStructureExtMap();
+        if (structureExtMap == null) {
+            return;
+        }
+        String operativeName = "";
+        String anesthesiaMode = "";
+        List<Map<String, String>> operative_information = (List<Map<String, String>>) structureExtMap.get(Content.operative_information);
+        if (operative_information == null || operative_information.size() == 0) {
+            return;
+        }
+        //手术名称
+        operativeName = operative_information.get(0).get(Content.operative_name);
+        //麻醉方式
+        anesthesiaMode = operative_information.get(0).get(Content.anesthesia_mode);
+
+        if (StringUtil.isNotBlank(anesthesiaMode)) {
+            return;
+        }
+
+        if (StringUtil.isBlank(operativeName)) {
+            return;
+        }
+
+        List<String> noMatchWords = Lists.newArrayList("其他周围血管药物洗脱支架置入","经皮降主动脉药物洗脱支架置入术","经皮周围动脉药物洗脱支架置入术",
+                "经皮周围静脉药物洗脱支架置入术","经皮尺动脉药物洗脱支架置入术","经皮腓动脉药物洗脱支架置入术","经皮肱动脉药物洗脱支架置入术","经皮桡动脉药物洗脱支架置入术",
+                "经皮上肢静脉药物洗脱支架置入术","经皮头臂静脉药物洗脱支架置入术","经皮外周动脉可降解支架置入术","锁骨下动脉药物洗脱支架置入术","股总动脉药物洗脱支架置入术",
+                "表浅股动脉药物洗脱支架置入","经皮股动脉药物洗脱支架置入术","颅外血管经皮血管成形术","经皮颈总动脉球囊扩张成形术","经皮颈静脉球囊扩张成形术","经皮颈动脉球囊扩张成形术",
+                "经皮椎动脉球囊扩张成形术","颅内血管经皮血管成形术","经皮大脑中动脉球囊扩张成形术","经皮大脑前动脉球囊扩张成形术","经皮大脑后动脉球囊扩张成形术","经皮椎动脉颅内段球囊扩张成形术",
+                "经皮颈内动脉颅内段球囊扩张成形术","经皮基底动脉球囊扩张成形术","经皮交通动脉血管球囊扩张成形术","颈动脉支架经皮置入术","经皮颈动脉远端保护装置置入术","经皮颈动脉覆膜支架置入术",
+                "经皮颈动脉药物洗脱支架置入术","脑保护伞下颈动脉支架置入术","其他颅外动脉支架经皮置入","经皮基底动脉支架置入术","经皮椎动脉支架置入术","经皮颅外动脉远端保护装置置入术",
+                "经皮椎动脉药物洗脱支架置入术","经皮椎动脉覆膜支架置入术","经皮椎动脉非药物洗脱支架置入术","颅内血管支架经皮置入","经皮颅内动脉支架置入术","经皮颅内动脉远端保护装置置入术",
+                "经皮颅内静脉窦支架置入术","经皮大脑前动脉支架置入术","经皮大脑后动脉支架置入术","经皮大脑中动脉支架置入术","经皮冠状动脉腔内血管成形术[PTCA]","经皮冠状动脉球囊扩张成形术",
+                "经皮冠状动脉药物球囊扩张成形术");
+
+        for (String noMatchWord : noMatchWords) {
+            if (operativeName.contains(noMatchWord) && StringUtil.isBlank(anesthesiaMode)) {
+                status.set("-1");
+                info.set(noMatchWord);
+                return;
+            }
+        }
+    }
+}

+ 74 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03197.java

@@ -0,0 +1,74 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.google.common.collect.Lists;
+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.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03197
+ * @Description :  其他手术及操作麻醉方式未填写
+ * @Author : wsy
+ * @Date: 2022-2-9 15:51
+ */
+@Component
+public class FIRP03197 extends QCCatalogue {
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<String> noMatchWords = Lists.newArrayList("其他周围血管药物洗脱支架置入","经皮降主动脉药物洗脱支架置入术","经皮周围动脉药物洗脱支架置入术",
+                "经皮周围静脉药物洗脱支架置入术","经皮尺动脉药物洗脱支架置入术","经皮腓动脉药物洗脱支架置入术","经皮肱动脉药物洗脱支架置入术","经皮桡动脉药物洗脱支架置入术",
+                "经皮上肢静脉药物洗脱支架置入术","经皮头臂静脉药物洗脱支架置入术","经皮外周动脉可降解支架置入术","锁骨下动脉药物洗脱支架置入术","股总动脉药物洗脱支架置入术",
+                "表浅股动脉药物洗脱支架置入","经皮股动脉药物洗脱支架置入术","颅外血管经皮血管成形术","经皮颈总动脉球囊扩张成形术","经皮颈静脉球囊扩张成形术","经皮颈动脉球囊扩张成形术",
+                "经皮椎动脉球囊扩张成形术","颅内血管经皮血管成形术","经皮大脑中动脉球囊扩张成形术","经皮大脑前动脉球囊扩张成形术","经皮大脑后动脉球囊扩张成形术","经皮椎动脉颅内段球囊扩张成形术",
+                "经皮颈内动脉颅内段球囊扩张成形术","经皮基底动脉球囊扩张成形术","经皮交通动脉血管球囊扩张成形术","颈动脉支架经皮置入术","经皮颈动脉远端保护装置置入术","经皮颈动脉覆膜支架置入术",
+                "经皮颈动脉药物洗脱支架置入术","脑保护伞下颈动脉支架置入术","其他颅外动脉支架经皮置入","经皮基底动脉支架置入术","经皮椎动脉支架置入术","经皮颅外动脉远端保护装置置入术",
+                "经皮椎动脉药物洗脱支架置入术","经皮椎动脉覆膜支架置入术","经皮椎动脉非药物洗脱支架置入术","颅内血管支架经皮置入","经皮颅内动脉支架置入术","经皮颅内动脉远端保护装置置入术",
+                "经皮颅内静脉窦支架置入术","经皮大脑前动脉支架置入术","经皮大脑后动脉支架置入术","经皮大脑中动脉支架置入术","经皮冠状动脉腔内血管成形术[PTCA]","经皮冠状动脉球囊扩张成形术",
+                "经皮冠状动脉药物球囊扩张成形术");
+
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null) {
+            return;
+        }
+        Map<String, Object> structureExtMap = firstPageRecordDoc.getStructureExtMap();
+        if (structureExtMap == null) {
+            return;
+        }
+        String operativeName = "";
+        String anesthesiaMode = "";
+        List<Map<String, String>> operative_information = (List<Map<String, String>>) structureExtMap.get(Content.operative_information);
+        if (operative_information == null || operative_information.size() == 0) {
+            return;
+        }
+
+        for (int i = 1; i < operative_information.size(); i++) {
+            //手术名称
+            operativeName = operative_information.get(i).get(Content.operative_name);
+            //麻醉方式
+            anesthesiaMode = operative_information.get(i).get(Content.anesthesia_mode);
+            if (StringUtil.isNotBlank(anesthesiaMode)) {
+                return;
+            }
+
+            if (StringUtil.isBlank(operativeName)) {
+                return;
+            }
+
+            for (String noMatchWord : noMatchWords) {
+                if (operativeName.contains(noMatchWord) && StringUtil.isBlank(anesthesiaMode)) {
+                    status.set("-1");
+                    info.set(noMatchWord);
+                    return;
+                }
+            }
+        }
+    }
+}