Kaynağa Gözat

北仑:解决入院记录多个字段显示同一位置问题

wangsy 4 yıl önce
ebeveyn
işleme
2df2fb2470

+ 30 - 4
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunHtmlAnalysisUtil.java

@@ -52,13 +52,39 @@ public class BeiLunHtmlAnalysisUtil {
             if (tdMhIndex < 1) {
                 continue;
             }
-            map.put(
-                    StringUtil.removeBlank(tdText.substring(0, tdMhIndex)),
-                    tdText.length() - 1 <= tdMhIndex ? "" : tdText.substring(tdMhIndex + 1)
-            );
+            if (tdText.contains("姓    名") && tdText.contains("年    龄")) {
+                multiColonResolve(tdMhIndex, tdText, "年    龄", map);
+            } else if (tdText.contains("产前检查") && tdText.contains("孕/产次")) {
+                multiColonResolve(tdMhIndex, tdText, "孕/产次", map);
+            } else if (tdText.contains("末次月经") && tdText.contains("预产期")) {
+                multiColonResolve(tdMhIndex, tdText, "预产期", map);
+            } else {
+                map.put(
+                        StringUtil.removeBlank(tdText.substring(0, tdMhIndex)),
+                        tdText.length() - 1 <= tdMhIndex ? "" : tdText.substring(tdMhIndex + 1)
+                );
+            }
         }
     }
 
+    /**
+     * 取得多个字段时,分别存储
+     *
+     * @param tdText
+     * @param text
+     */
+    public static void multiColonResolve(int tdMhIndex, String tdText, String text, Map<String, String> map) {
+        String firstText = tdText.split(text)[0];
+        map.put(
+                StringUtil.removeBlank(firstText.substring(0, tdMhIndex)),
+                firstText.length() - 1 <= tdMhIndex ? "" : firstText.substring(tdMhIndex + 1)
+        );
+        String secondText = tdText.split(text)[1];
+        secondText = secondText.replace(":", "");
+        secondText = secondText.replace(":", "");
+        map.put(StringUtil.removeBlank(text), secondText);
+    }
+
     /**
      * table样式:td两两配对,一个key,一个value;不保留换行
      *