瀏覽代碼

Merge remote-tracking branch 'origin/beilun/dev' into beilun/dev

rengb 4 年之前
父節點
當前提交
dadd225778

+ 12 - 9
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunConsultationDocTrans.java

@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
+import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationApplicationDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationRecordDoc;
@@ -13,6 +14,8 @@ 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.beilun.util.BeiLunConsultationHtmlAnalysis;
+import com.lantone.qc.trans.beilun.util.BeiLunHtmlAnalysis;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -134,18 +137,18 @@ public class BeiLunConsultationDocTrans extends ModelDocTrans {
 
     private ConsultationResultsDoc getConsultationResultsDoc(Map<String, Object> contentMap) {
         String content = contentMap.get("xmlText").toString();
-        Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
-        xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, consultationApplication_keyContrasts);
+        String recTitle = contentMap.get("recTitle").toString();
+        String recTypeId = contentMap.get("recTypeId").toString();
+        BeiLunHtmlAnalysis beiLunHtmlAnalysis = new BeiLunConsultationHtmlAnalysis();
+        Map<String, String> sourceMap = beiLunHtmlAnalysis.analysis(content, recTitle, recTypeId);
+        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, consultationResults_pageDataTitles);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, consultationApplication_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+        BeHospitalizedDoc beHospitalizedDoc = ModelDocGenerate.beHospitalizedDocGen(structureMap);
+        beHospitalizedDoc.setPageData((Map) structureMap);
 
-        ConsultationResultsDoc consultationResultsDoc = ModelDocGenerate.consultationResultsDocGen(cutWordMap);
+        ConsultationResultsDoc consultationResultsDoc = ModelDocGenerate.consultationResultsDocGen(structureMap);
         consultationResultsDoc.setText(content);
-        consultationResultsDoc.setPageData((Map) cutWordMap);
+        consultationResultsDoc.setPageData((Map) structureMap);
         return consultationResultsDoc;
     }
 

+ 12 - 12
trans/src/main/java/com/lantone/qc/trans/beilun/BeiLunOperationDocTrans.java

@@ -40,27 +40,27 @@ public class BeiLunOperationDocTrans extends ModelDocTrans {
             return retList;
         }
 
-        Map<String, OperationDiscussionDoc> operationDiscussionDocMap = getOperationDiscussionDocMap((List) contentMap.get("术后首次病程及谈话记录"));
-        Map<String, OperationRecordDoc> operationRecordDocMap = getOperationRecordDocMap((List) contentMap.get("手术记录"));
+        //Map<String, OperationDiscussionDoc> operationDiscussionDocMap = getOperationDiscussionDocMap((List) contentMap.get("术后首次病程及谈话记录"));
+        //Map<String, OperationRecordDoc> operationRecordDocMap = getOperationRecordDocMap((List) contentMap.get("手术记录"));
         Map<String, PreoperativeDiscussionDoc> preoperativeDiscussionDocMap = getPreoperativeDiscussionDocMap((List) contentMap.get("术前讨论、术前小结"));
-        Map<String, OperationInformedConsentDoc> operationInformedConsentDocMap = getOperationInformedConsentDocMap((List) contentMap.get("手术知情同意书"));
-        Map<String, OperationSafetyChecklistDoc> operationSafetyChecklistDocMap = getOperationSafetyChecklistDocMap((List) contentMap.get("手术安全核查表"));
+        //Map<String, OperationInformedConsentDoc> operationInformedConsentDocMap = getOperationInformedConsentDocMap((List) contentMap.get("手术知情同意书"));
+        //Map<String, OperationSafetyChecklistDoc> operationSafetyChecklistDocMap = getOperationSafetyChecklistDocMap((List) contentMap.get("手术安全核查表"));
 
         Set<String> operationNameSet = Sets.newHashSet();
-        operationNameSet.addAll(operationDiscussionDocMap.keySet());
-        operationNameSet.addAll(operationRecordDocMap.keySet());
+        //operationNameSet.addAll(operationDiscussionDocMap.keySet());
+        //operationNameSet.addAll(operationRecordDocMap.keySet());
         operationNameSet.addAll(preoperativeDiscussionDocMap.keySet());
-        operationNameSet.addAll(operationInformedConsentDocMap.keySet());
-        operationNameSet.addAll(operationSafetyChecklistDocMap.keySet());
+        //operationNameSet.addAll(operationInformedConsentDocMap.keySet());
+        //operationNameSet.addAll(operationSafetyChecklistDocMap.keySet());
 
         operationNameSet.forEach(operationName -> {
             OperationDoc operationDoc = new OperationDoc();
             operationDoc.setOperationName(operationName);
-            operationDoc.setOperationDiscussionDoc(operationDiscussionDocMap.get(operationName));
-            operationDoc.setOperationRecordDoc(operationRecordDocMap.get(operationName));
+            //operationDoc.setOperationDiscussionDoc(operationDiscussionDocMap.get(operationName));
+            //operationDoc.setOperationRecordDoc(operationRecordDocMap.get(operationName));
             operationDoc.setPreoperativeDiscussionDoc(preoperativeDiscussionDocMap.get(operationName));
-            operationDoc.setOperationInformedConsentDoc(operationInformedConsentDocMap.get(operationName));
-            operationDoc.setOperationSafetyChecklistDoc(operationSafetyChecklistDocMap.get(operationName));
+            //operationDoc.setOperationInformedConsentDoc(operationInformedConsentDocMap.get(operationName));
+            //operationDoc.setOperationSafetyChecklistDoc(operationSafetyChecklistDocMap.get(operationName));
             retList.add(operationDoc);
         });
 

+ 9 - 2
trans/src/main/java/com/lantone/qc/trans/beilun/util/BeiLunConsultationHtmlAnalysis.java

@@ -3,6 +3,8 @@ package com.lantone.qc.trans.beilun.util;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.lantone.qc.pub.util.StringUtil;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
 
 import java.util.List;
 import java.util.Map;
@@ -22,6 +24,8 @@ public class BeiLunConsultationHtmlAnalysis implements BeiLunHtmlAnalysis {
                 "会诊到达时间", "查体", "会诊建议", "会诊诊断", "会诊科室", "会诊医师", "外院会诊医师所在医疗机构名称", "会诊医师所在医疗机构名称");
         String html = args[0];
         String recTitle = args[1];
+        String recTypeId = args[2];
+
         Map<String, String> structureMap = Maps.newLinkedHashMap();
         List<String> htmlText = null;
         String htmlContent = null;
@@ -75,16 +79,19 @@ public class BeiLunConsultationHtmlAnalysis implements BeiLunHtmlAnalysis {
                 structureMap.put("rec_title=", recTitle);
                 break;
             default:
-                htmlContent = CommonAnalysisUtil.html2String(html);
+                Document doc = Jsoup.parse(html);
+                htmlContent = BeiLunHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
+                //htmlContent = CommonAnalysisUtil.html2String(html);
                 if (StringUtil.isNotBlank(htmlContent)) {
                     htmlContent = htmlContent.replaceAll("[   ]", " ");
                     CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
                 }
-                structureMap.put("rec_title=", "371");
+                //structureMap.put("rec_title=", "371");
                 break;
         }
         CommonAnalysisUtil.extractDateByTitle(structureMap, "会诊到达时间");
         CommonAnalysisUtil.processType(structureMap, "会诊类型");
+        BeiLunHtmlAnalysisUtil.insertModuleId(recTypeId, structureMap);
         return structureMap;
     }