Procházet zdrojové kódy

长兴会诊对接修改

rengb před 5 roky
rodič
revize
4a487069d6

+ 32 - 29
trans/src/main/java/com/lantone/qc/trans/changx/ChangxConsultationDocTrans.java

@@ -9,9 +9,12 @@ import com.lantone.qc.pub.model.doc.consultation.ConsultationRecordDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
 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.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;
@@ -78,13 +81,27 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
     }
 
     private ConsultationRecordDoc getConsultationRecordDoc(String content) {
-        Map<String, String> pageData = Preproc.extract_doc_pub(true, consultationRecord_pageDataTitles, content);
-        pageData.put("病程记录内容",
-                pageData.get("病程记录内容")
-                        .replace(pageData.get("病程记录时间"), "")
-                        .replace(pageData.get("病程记录名称"), "")
-        );
+        String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");
+        if (StringUtil.isBlank(text)) {
+            text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region");
+        }
+        Map<String, String> cutWordMap = getCutWordMap(text);
+        Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue("//DocObjContent//Region", content);
+        cutWordMap.putAll(xmlNodeValueMap);
+        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(cutWordMap, consultationRecord_keyContrasts);
+        MapUtil.keyAssig(structureMap, "记录医师", "签名");
 
+        ConsultationRecordDoc consultationRecordDoc = ModelDocGenerate.consultationRecordDocGen(structureMap);
+        consultationRecordDoc.setText(text);
+        consultationRecordDoc.setPageData((Map) xmlNodeValueMap);
+
+        return consultationRecordDoc;
+    }
+
+    private Map<String, String> getCutWordMap(String content) {
+        if (StringUtil.isBlank(content)) {
+            return Maps.newHashMap();
+        }
         List<String> targetTitles = Lists.newArrayList();
         consultationRecord_sourceTitles.forEach(sourceTitle -> {
             String targetTitle = "";
@@ -97,31 +114,17 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
             }
             targetTitles.add(targetTitle);
         });
-
-        Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
-        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
-        sourceMap.put("会诊情况", sourceMap.get("病程记录内容"));
-
-        ConsultationRecordDoc consultationRecordDoc = ModelDocGenerate.consultationRecordDocGen(sourceMap);
-        consultationRecordDoc.setText(content);
-        consultationRecordDoc.setPageData((Map) pageData);
-
-        return consultationRecordDoc;
+        if (ListUtil.isEmpty(targetTitles)) {
+            return Maps.newHashMap();
+        }
+        return Preproc.extract_doc_pub(true, targetTitles, content);
     }
 
-    private List<String> consultationRecord_pageDataTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "记录医师"
-    );
-    private List<String> consultationRecord_sourceTitles = Lists.newArrayList(
-            "病程记录时间",
-            "病程记录名称",
-            "病程记录内容",
-            "会诊情况",
-            "记录时间",
-            "记录医师"
+    private List<String> consultationRecord_sourceTitles = Lists.newArrayList();
+
+    private List<String> consultationRecord_keyContrasts = Lists.newArrayList(
+            "执行情况=会诊情况",
+            "记录日期=记录时间"
     );