Browse Source

湘雅:输血记录中未记录是否有不良反应、手术及操作名称填写不全

zhanghang 3 years ago
parent
commit
fdbef9e11e

+ 45 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/clinicalblood/CLI0308.java

@@ -0,0 +1,45 @@
+package com.lantone.qc.kernel.catalogue.hospital.changshaxy.clinicalblood;
+
+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.ClinicalBloodDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : CLI0308
+ * @Description :  输血记录中未记录是否有不良反应
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class CLI0308 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+        if (ListUtil.isEmpty(clinicalBloodDocs)) {
+            status.set("0");
+            return;
+        }
+
+        if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
+            String regex = ".*(未.*|无.*|否.*).*(输血反应|不良反应).*";
+            for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                if (StringUtils.isNotEmpty(cliBStructureMap.get("病历内容")) && (cliBStructureMap.get("病历内容").contains("不良反应")
+                        || cliBStructureMap.get("病历内容").contains("不适") || cliBStructureMap.get("病历内容").contains("未见"))) {
+                    status.set("0");
+                }else {
+                    return;
+                }
+            }
+        } else {
+            status.set("0");
+        }
+
+    }
+}

+ 74 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/changshaxy/firstpagerecord/FIRP0193.java

@@ -0,0 +1,74 @@
+package com.lantone.qc.kernel.catalogue.hospital.changshaxy.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.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationDiscussionDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0193
+ * @Description :手术及操作名称填写不全
+ * @Author : 胡敬
+ * @Date: 2020-03-16 20:28
+ */
+@Component
+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<>();
+        if (ListUtil.isNotEmpty(operationDocs)) {
+            for (OperationDoc opd : operationDocs) {
+                OperationRecordDoc operationRecordDoc = opd.getOperationRecordDoc();
+                if (operationRecordDoc == null) {
+                    continue;
+                }
+                String operativeMethod = operationRecordDoc.getStructureMap().get("手术名称");
+                if (StringUtil.isBlank(operativeMethod)){
+                    continue;
+                }
+                if(operativeMethod.contains("+")){
+                    String[] split = operativeMethod.split("\\+");
+                    for (String s : split) {
+                        operations.add(s);
+                    }
+                }else {
+                    operations.add(operativeMethod);
+                }
+            }
+        }
+        Map<String, Object> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureExtMap();
+        List<Map<String, String>> mapList = (List<Map<String, String>>) firstPageRecordDocStructureMap.get(Content.operative_information);
+        if (mapList != null && mapList.size() > 0) {
+            for (Map<String, String> ds : mapList) {
+                String oName = ds.get(Content.operative_name);
+                if (StringUtils.isNotEmpty(oName)) {
+                    operations_first.add(oName);
+                }
+            }
+        }
+        if (operations_first.size()==operations.size()) {
+            status.set("0");
+        } else {
+            status.set("-1");
+        }
+
+    }
+}