浏览代码

危急值记录对接添加

rengb 5 年之前
父节点
当前提交
2ed75c1452
共有 1 个文件被更改,包括 62 次插入12 次删除
  1. 62 12
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxCrisisValueReportDocTrans.java

+ 62 - 12
trans/src/main/java/com/lantone/qc/trans/changx/ChangxCrisisValueReportDocTrans.java

@@ -2,9 +2,8 @@ package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.CrisisValueReportDoc;
-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;
@@ -24,18 +23,69 @@ public class ChangxCrisisValueReportDocTrans extends ModelDocTrans {
         List<CrisisValueReportDoc> retList = Lists.newArrayList();
         List<String> contents = (List) medrecVo.getContent().get("content");
         contents.forEach(content -> {
-            Map<String, String> structureMap =
-                    Preproc.extract_doc_pub(
-                            false,
-                            ListUtil.isEmpty(medrecVo.getLabel()) ? ModelStandardKeys.crisisValueReport : medrecVo.getLabel(),
-                            content
-                    );
-
-            CrisisValueReportDoc crisisValueReportDoc = ModelDocGenerate.crisisValueReportDocGen(structureMap);
-            crisisValueReportDoc.setText(content);
-            retList.add(crisisValueReportDoc);
+            retList.add(getCrisisValueReportDoc(content));
         });
         return retList;
     }
 
+    private CrisisValueReportDoc getCrisisValueReportDoc(String content) {
+        Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
+        pageData.put("病程记录内容",
+                pageData.get("病程记录内容")
+                        .replace(pageData.get("病程记录时间"), "")
+                        .replace(pageData.get("病程记录名称"), "")
+        );
+
+        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(true, targetTitles, content);
+        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
+        MapUtil.keyAssig(sourceMap, "医生签名", "医生姓名");
+        MapUtil.keyAssig(sourceMap, "医生签名时间", "签名时间");
+
+        CrisisValueReportDoc crisisValueReportDoc = ModelDocGenerate.crisisValueReportDocGen(sourceMap);
+        crisisValueReportDoc.setText(content);
+        crisisValueReportDoc.setPageData((Map) pageData);
+
+        return crisisValueReportDoc;
+    }
+
+    private List<String> pageDataTitles = Lists.newArrayList(
+            "病程记录时间",
+            "病程记录名称",
+            "病程记录内容",
+            "记录医师"
+    );
+
+    private List<String> sourceTitles = Lists.newArrayList(
+            "病程记录时间",
+            "病程记录名称",
+            "病程记录内容",
+            "记录时间",
+            "记录医师",
+            "患者临床诊断",
+            "危急值记录内容",
+            "报告部门",
+            "报告人姓名",
+            "报告时间",
+            "接收人姓名",
+            "接收时间",
+            "病情分析及处理",
+            "医生签名",
+            "医生姓名",
+            "医生签名时间",
+            "签名时间"
+    );
+
 }