浏览代码

输血记录中输血指征不严格

weixuanhuang 5 年之前
父节点
当前提交
f74551396f
共有 1 个文件被更改,包括 46 次插入0 次删除
  1. 46 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0300.java

+ 46 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0300.java

@@ -0,0 +1,46 @@
+package com.lantone.qc.kernel.catalogue.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 org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : CLI0300
+ * @Description : 输血记录中输血指征不严格
+ * CRF缺少足够标注数据,使用规则判断输血原因是否有数字
+ * @Author : Mark
+ * @Date: 2020-04-05 16:56
+ */
+@Component
+public class CLI0300 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
+            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                String infusionReason = cliBStructureMap.get("输注原因");
+                if(StringUtils.isNotEmpty(infusionReason)){
+                    Pattern compile = Pattern.compile("([\\d]+[.\\d+]*)([a-zA-Z]+)(/[a-zA-Z]+)*");
+                    Matcher matcher = compile.matcher(infusionReason);
+                    if (matcher.find(0)){
+                        if (null!=matcher.group(1)) {
+                            Double val = Double.parseDouble(matcher.group(1));
+                            if (val > 60.0) {
+                                status.set("-1");
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}