瀏覽代碼

Merge remote-tracking branch 'origin/master'

weixuanhuang 5 年之前
父節點
當前提交
eb75546bff

+ 25 - 33
trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicalBloodDocTrans.java

@@ -3,8 +3,11 @@ package com.lantone.qc.trans.changx;
 import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
+import com.lantone.qc.trans.changx.util.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
+import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
 
 import java.util.List;
@@ -28,47 +31,25 @@ public class ChangxClinicalBloodDocTrans extends ModelDocTrans {
     }
 
     private ClinicalBloodDoc getClinicalBloodDoc(String content) {
-        Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
-        pageData.put("病程记录内容",
-                pageData.get("病程记录内容")
-                        .replace(pageData.get("病程记录时间"), "")
-                        .replace(pageData.get("病程记录名称"), "")
-        );
+        Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue("//DocObjContent/Region", content);
+        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
 
-        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);
-        });
+        String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");
+        if (StringUtil.isBlank(text)) {
+            text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region");
+        }
+        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+        cutWordMap.putAll(structureMap);
 
-        Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
-        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
 
-        ClinicalBloodDoc clinicalBloodDoc = ModelDocGenerate.clinicalBloodDocGen(sourceMap);
-        clinicalBloodDoc.setText(content);
-        clinicalBloodDoc.setPageData((Map) pageData);
+        ClinicalBloodDoc clinicalBloodDoc = ModelDocGenerate.clinicalBloodDocGen(cutWordMap);
+        clinicalBloodDoc.setText(text);
+        clinicalBloodDoc.setPageData((Map) xmlNodeValueMap);
 
         return clinicalBloodDoc;
     }
 
-    private List<String> pageDataTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录医师"
-    );
-
     private List<String> sourceTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
             "输注原因",
             "输注时间",
             "输注开始",
@@ -80,4 +61,15 @@ public class ChangxClinicalBloodDocTrans extends ModelDocTrans {
             "记录时间"
     );
 
+    private List<String> keyContrasts = Lists.newArrayList(
+            "记录日期=记录时间",
+            "输注原因=",
+            "输注开始=",
+            "输注结束=",
+            "输注种类、血型、数量=",
+            "输注过程=",
+            "签名++++=记录医师",
+            "签名时间="
+    );
+
 }

+ 8 - 8
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDocTrans.java

@@ -37,10 +37,10 @@ public class ChangxDocTrans extends DocTrans {
                 ChangxBeHospitalizedDocTrans beHospitalizedDocTrans = new ChangxBeHospitalizedDocTrans();
                 inputInfo.setBeHospitalizedDoc(beHospitalizedDocTrans.extract(i));
             }
-            //            if (i.getTitle().equals("输血/血制品病程记录")) {
-            //                ChangxClinicalBloodDocTrans clinicalBloodDocTrans = new ChangxClinicalBloodDocTrans();
-            //                inputInfo.setClinicalBloodDocs(clinicalBloodDocTrans.extract(i));
-            //            }
+            if (i.getTitle().equals("输血/血制品病程记录")) {
+                ChangxClinicalBloodDocTrans clinicalBloodDocTrans = new ChangxClinicalBloodDocTrans();
+                inputInfo.setClinicalBloodDocs(clinicalBloodDocTrans.extract(i));
+            }
             if (i.getTitle().equals("危急值记录")) {
                 ChangxCrisisValueReportDocTrans crisisValueReportDocTrans = new ChangxCrisisValueReportDocTrans();
                 inputInfo.setCrisisValueReportDocs(crisisValueReportDocTrans.extract(i));
@@ -128,10 +128,10 @@ public class ChangxDocTrans extends DocTrans {
         if (inputInfo.getFirstPageRecordDoc() != null) {
             inputInfo.getPageData().put("病案首页", Lists.newArrayList(inputInfo.getFirstPageRecordDoc().getPageData()));
         }
-        //
-        //        if (ListUtil.isNotEmpty(inputInfo.getClinicalBloodDocs())) {
-        //            inputInfo.getPageData().put("输血/血制品病程记录", inputInfo.getClinicalBloodDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
-        //        }
+
+        if (ListUtil.isNotEmpty(inputInfo.getClinicalBloodDocs())) {
+            inputInfo.getPageData().put("输血/血制品病程记录", inputInfo.getClinicalBloodDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
+        }
         if (ListUtil.isNotEmpty(inputInfo.getCrisisValueReportDocs())) {
             inputInfo.getPageData().put("危急值记录", inputInfo.getCrisisValueReportDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
         }