Explorar el Código

死亡病例讨论记录对接添加

rengb hace 5 años
padre
commit
30c08c3ae4

+ 33 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java

@@ -5,6 +5,7 @@ import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.keys.ModelStandardKeys;
 import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.MapUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -23,19 +24,41 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
     public List<ThreeLevelWardDoc> extract(MedrecVo medrecVo) {
         List<ThreeLevelWardDoc> retList = Lists.newArrayList();
         List<String> contents = (List) medrecVo.getContent().get("content");
+        List<String> sourceTitles = ListUtil.isEmpty(medrecVo.getLabel()) ? ModelStandardKeys.threeLevelWard : medrecVo.getLabel();
         contents.forEach(content -> {
-            Map<String, String> structureMap =
-                    Preproc.extract_doc_pub(
-                            false,
-                            ListUtil.isEmpty(medrecVo.getLabel()) ? ModelStandardKeys.threeLevelWard : medrecVo.getLabel(),
-                            content
-                    );
-
-            ThreeLevelWardDoc threeLevelWardDoc = ModelDocGenerate.threeLevelWardDocGen(structureMap);
-            threeLevelWardDoc.setText(content);
-            retList.add(threeLevelWardDoc);
+            retList.add(getThreeLevelWardDoc(content, sourceTitles));
         });
         return retList;
     }
 
+    private ThreeLevelWardDoc getThreeLevelWardDoc(String content, List<String> sourceTitles) {
+        List<String> targetTitles = Lists.newArrayList();
+        sourceTitles.forEach(sourceTitle -> {
+            String targetTitle = "";
+            for (int index = 0; index < sourceTitle.length(); index++) {
+                if (index == sourceTitle.length() - 1) {
+                    targetTitle += sourceTitle.substring(index, index + 1);
+                } else {
+                    targetTitle += sourceTitle.substring(index, index + 1) + "[\\s\\p{Zs}]*";
+                }
+            }
+            targetTitles.add(targetTitle);
+        });
+
+        Map<String, String> sourceMap = Preproc.extract_doc_pub(false, targetTitles, content);
+        Map<String, String> targetMap = MapUtil.copyMap((Map) sourceMap);
+        targetMap.put("记录时间", targetMap.get("病程记录时间"));
+        targetMap.remove("病程记录时间");
+        targetMap.put("查房标题", targetMap.get("病程记录名称"));
+        targetMap.remove("病程记录名称");
+        targetMap.put("病情记录", targetMap.get("病程记录内容"));
+        targetMap.remove("病程记录内容");
+
+        ThreeLevelWardDoc threeLevelWardDoc = ModelDocGenerate.threeLevelWardDocGen(targetMap);
+        threeLevelWardDoc.setText(content);
+        threeLevelWardDoc.setPageData((Map) sourceMap);
+
+        return threeLevelWardDoc;
+    }
+
 }