Bläddra i källkod

邵逸夫xml添加

rengb 5 år sedan
förälder
incheckning
296cc6f06e

+ 6 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/controller/DbController.java

@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
 import com.lantone.qc.dbanaly.facade.changx.ChangxXmlDataAnalysisFacade;
 import com.lantone.qc.dbanaly.facade.comsis.ModuleHelper;
 import com.lantone.qc.dbanaly.facade.comsis.RedisFacade;
+import com.lantone.qc.dbanaly.facade.shaoyf.ShaoyfXmlDataAnalysisFacade;
 import com.lantone.qc.dbanaly.facade.taizhou.TaiZhouXmlDataAnalysisFacade;
 import com.lantone.qc.dbanaly.util.RedisUtil;
 import com.lantone.qc.dbanaly.vo.AnalyzeXmlVO;
@@ -38,6 +39,8 @@ public class DbController {
     @Autowired
     private TaiZhouXmlDataAnalysisFacade taiZhouXmlDataAnalysisFacade;
     @Autowired
+    private ShaoyfXmlDataAnalysisFacade shaoyfXmlDataAnalysisFacade;
+    @Autowired
     private RedisFacade redisFacade;
 
     @ApiOperation(value = "模板信息加载")
@@ -56,9 +59,12 @@ public class DbController {
         Long hospitalId = analyzeXmlVO.getHospitalId();
         if (hospitalId == null) {
             msgList.addAll(changxXmlDataAnalysisFacade.analyzeXml(analyzeXmlVO.getModeIds()));
+            msgList.addAll(shaoyfXmlDataAnalysisFacade.analyzeXml(analyzeXmlVO.getModeIds()));
             msgList.addAll(taiZhouXmlDataAnalysisFacade.analyzeXml(analyzeXmlVO.getModeIds()));
         } else if (hospitalId == 1) {
             msgList = changxXmlDataAnalysisFacade.analyzeXml(analyzeXmlVO.getModeIds());
+        } else if (hospitalId == 2) {
+            msgList = shaoyfXmlDataAnalysisFacade.analyzeXml(analyzeXmlVO.getModeIds());
         } else if (hospitalId == 3) {
             msgList = taiZhouXmlDataAnalysisFacade.analyzeXml(analyzeXmlVO.getModeIds());
         }

+ 3 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/comsis/XmlDataAnalysisFacade.java

@@ -5,6 +5,7 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
+import com.lantone.qc.dbanaly.facade.shaoyf.ShaoyfXmlUtil;
 import com.lantone.qc.dbanaly.facade.taizhou.TzXmlUtil;
 import com.lantone.qc.dbanaly.lt.entity.Abnormal;
 import com.lantone.qc.dbanaly.lt.entity.BehospitalInfo;
@@ -329,6 +330,8 @@ public class XmlDataAnalysisFacade {
         Set<String> keys = new HashSet<>();
         if (hospitalId == 1) {
             keys.addAll(CxXmlUtil.firstLevelNodeValue(xml).keySet());
+        } else if (hospitalId == 2) {
+            keys.addAll(ShaoyfXmlUtil.getXmlToMap(xml).keySet());
         } else if (hospitalId == 3) {
             keys.addAll(TzXmlUtil.getXmlToMapForTZ(xml).keySet());
         }

+ 51 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/shaoyf/ShaoyfXmlDataAnalysisFacade.java

@@ -0,0 +1,51 @@
+package com.lantone.qc.dbanaly.facade.shaoyf;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.comsis.XmlDataAnalysisFacade;
+import com.lantone.qc.dbanaly.lt.facade.ModeFacade;
+import com.lantone.qc.pub.util.ListUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/6/3 16:44
+ */
+@Slf4j
+@Component
+public class ShaoyfXmlDataAnalysisFacade {
+    @Autowired
+    private XmlDataAnalysisFacade xmlDataAnalysisFacade;
+    @Autowired
+    private ModeFacade modeFacade;
+
+    public List<String> analyzeXml(List<Long> modeIds) {
+        List<String> retList = Lists.newArrayList();
+        if (ListUtil.isEmpty(modeIds)) {
+            modeIds = Arrays.asList(1l, 2l, 3l, 4l, 5l, 11l, 17l, 18l, 19l, 22l, 24l, 25l, 27l, 28l, 30l, 31l);
+        }
+        Map<Long, String> modeMap = modeFacade.getModeMap();
+        List<String> recTitles = null;
+        String modeName = null;
+        for (Long modeId : modeIds) {
+            recTitles = xmlDataAnalysisFacade.getRecTitles(2l, modeId);
+            modeName = modeMap.get(modeId);
+            for (String recTitle : recTitles) {
+                try {
+                    xmlDataAnalysisFacade.analysisByRecTitle(2l, modeId, modeName, recTitle, null, "");
+                } catch (Exception e) {
+                    retList.add("[邵逸夫-" + modeId + "-" + recTitle + "]执行失败");
+                    log.error("[邵逸夫-" + modeId + "-" + recTitle + "]执行失败--" + e.getMessage(), e);
+                }
+            }
+        }
+        return retList;
+    }
+
+}

+ 57 - 0
dbanaly/src/main/java/com/lantone/qc/dbanaly/facade/shaoyf/ShaoyfXmlUtil.java

@@ -0,0 +1,57 @@
+package com.lantone.qc.dbanaly.facade.shaoyf;
+
+import com.google.common.collect.Maps;
+import com.lantone.qc.dbanaly.facade.comsis.XmlUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.dom4j.Document;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: xml解析工具
+ * @author: rengb
+ * @time: 2020/3/28 14:23
+ */
+public class ShaoyfXmlUtil {
+
+    /**
+     * getText()获取当前节点的文本内容,getStringValue()获取所有子节点拼接后的文本内容
+     *
+     * @param xml
+     * @return
+     */
+
+    public static Map<String, String> getXmlToMap(String xml) {
+        Map<String, String> retMap = Maps.newLinkedHashMap();
+        try {
+            Document doc = DocumentHelper.parseText(XmlUtil.xmlErrorCorrection(xml));
+            List<Element> emrTermElements = doc.getRootElement().element("TermList").elements("EMR-TERM");
+            String ename, setnomark, text;
+            for (Element emrTermElement : emrTermElements) {
+                ename = emrTermElement.attributeValue("ename");
+                if (StringUtil.isBlank(ename)) {
+                    continue;
+                }
+                //                ename = StringUtil.removeBlank(ename);
+                setnomark = emrTermElement.attributeValue("setnomark");
+                setnomark = setnomark == null ? "" : setnomark;
+                setnomark = setnomark.trim().replaceAll("&nbsp;", "");
+                text = emrTermElement.getStringValue().trim().replaceAll("&nbsp;", "");
+                if (StringUtil.isBlank(retMap.get(ename))) {
+                    if (StringUtil.isBlank(text)) {
+                        retMap.put(ename, setnomark);
+                    } else {
+                        retMap.put(ename, text);
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return XmlUtil.correctMapOfXml(retMap);
+    }
+
+}