Explorar o código

首次病程录拼接字段

zhoutg %!s(int64=5) %!d(string=hai) anos
pai
achega
24f9284fba

+ 39 - 0
public/src/main/java/com/lantone/qc/pub/util/MapUtil.java

@@ -6,7 +6,9 @@ import java.beans.BeanInfo;
 import java.beans.Introspector;
 import java.beans.PropertyDescriptor;
 import java.lang.reflect.Method;
+import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -143,6 +145,33 @@ public class MapUtil {
     }
 
 
+    /**
+     * 按照指定的key拼接数据
+     *
+     * @param dataMap
+     * @param keyList
+     * @return 例如
+     *         主诉:xxxxxxx
+     *         性病史:xxxxxx
+     */
+    public static String getSelectString(Map<String, String> dataMap, List<String> keyList) {
+        StringBuffer res = new StringBuffer();
+        if (dataMap == null || ListUtil.isEmpty(keyList)) {
+            return res.toString();
+        }
+        boolean firstLine = true; // 第一行不添加回车符
+        for (String key : keyList) {
+            if (!firstLine) {
+                res.append("\r\n");
+            } else {
+                firstLine = false;
+            }
+            String value = dataMap.get(key) == null ?  "" :  dataMap.get(key);
+            res.append(key).append(":").append(value);
+        }
+        return res.toString();
+    }
+
     /**
      * 拷贝map
      * @param sourceMap
@@ -181,4 +210,14 @@ public class MapUtil {
         System.out.println("***************打印map内容结束******************");
     }
 
+    public static void main(String[] args) {
+        Map<String, String> dataMap = new HashMap<>();
+        dataMap.put("主诉","主诉");
+        dataMap.put("现病史","现病史");
+        dataMap.put("其他史11","3");
+        dataMap.put("4","4");
+
+        System.out.println(getSelectString(dataMap, Arrays.asList("现病史","主诉","其他史")));
+    }
+
 }

+ 44 - 31
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouFirstCourseRecordDocTrans.java

@@ -3,10 +3,12 @@ package com.lantone.qc.trans.taizhou;
 import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.MapUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.taizhou.util.TzXmlUtil;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -23,6 +25,44 @@ public class TaiZhouFirstCourseRecordDocTrans extends ModelDocTrans {
 
         Map<String, String> sourceMap = TzXmlUtil.getXmlToMapForTZ(content); // xml原始数据给华卓
         Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
+        // 病例特点=主诉+现病史-发病情况+专科检查+实验室检查+影像学检查+辅助检查结果+呼吸+脉搏+体温+血压
+        structureMap.put("病例特点", MapUtil.getSelectString(structureMap, Arrays.asList(
+                "主诉",
+                "现病史-发病情况",
+                "专科检查",
+                "实验室检查",
+                "影像学检查",
+                "辅助检查结果",
+                "呼吸",
+                "脉搏",
+                "体温",
+                "血压"
+            ))
+        );
+        // 诊断依据=性别+年龄+主诉+现病史-发病情况+专科检查+实验室检查+影像学检查+辅助检查结果+呼吸+脉搏+体温+血压
+        structureMap.put("诊断依据", MapUtil.getSelectString(structureMap, Arrays.asList(
+                "性别",
+                "年龄",
+                "主诉",
+                "现病史-发病情况",
+                "专科检查",
+                "实验室检查",
+                "影像学检查",
+                "辅助检查结果",
+                "呼吸",
+                "脉搏",
+                "体温",
+                "血压"
+                ))
+        );
+        // 诊疗计划=检查计划+治疗计划和措施
+        structureMap.put("诊疗计划", MapUtil.getSelectString(structureMap, Arrays.asList(
+                "检查计划",
+                "治疗计划和措施"
+                ))
+        );
+
+        // 诊疗计划
         FirstCourseRecordDoc firstCourseRecordDoc = new FirstCourseRecordDoc();
         firstCourseRecordDoc.setText(content);
         firstCourseRecordDoc.setStructureMap(structureMap);
@@ -31,37 +71,10 @@ public class TaiZhouFirstCourseRecordDocTrans extends ModelDocTrans {
     }
 
     private List<String> keyContrasts = Lists.newArrayList(
-            "鉴别诊断=",
-            "检查计划=",
-            "文书内容=",
-            "病例特点=",
-            "诊断依据=",
-            "诊疗计划=",
-            "医生=",
-            "专科检查=",
-            "拟诊讨论=",
-            "血压=",
-            "影像学检查=",
-            "年龄=",
-            "治疗计划和措施=",
-            "主诉=",
-            "床号=",
-            "实验室检查=",
-            "病人基本信息=",
-            "医疗组长=",
-            "性别=",
-            "辅助检查结果=",
-            "本人姓名=",
-            "病历号=",
-            "初步诊断=",
-            "病历日期=记录时间",
-            "现病史-发病情况=",
-            "脉搏=",
-            "入院日期=",
-            "呼吸=",
-            "临床科室=",
-            "体温=",
-            "病历状态="
+            "初步诊断=初步诊断",
+            "鉴别诊断=鉴别诊断",
+            "医生=记录医师",
+            "病历日期=记录时间"
             );
 
 }