Browse Source

字段标准化修改-长兴如入北仑

rengb 4 năm trước cách đây
mục cha
commit
f9dc63bd17
20 tập tin đã thay đổi với 472 bổ sung326 xóa
  1. 3 1
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxAnesthesiaRelatedDocTrans.java
  2. 30 23
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxBeHospitalizedDocTrans.java
  3. 19 11
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicBloodEffectDocTrans.java
  4. 18 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicalBloodDocTrans.java
  5. 49 29
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxConsultationDocTrans.java
  6. 18 11
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxCrisisValueReportDocTrans.java
  7. 17 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxCriticallyIllNoticeDocTrans.java
  8. 17 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDailyCourseRecordDocTrans.java
  9. 17 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathCaseDiscussDocTrans.java
  10. 17 11
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathRecordDocTrans.java
  11. 22 15
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDifficultCaseDiscussDocTrans.java
  12. 0 20
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxDocTrans.java
  13. 18 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstCourseRecordDocTrans.java
  14. 12 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxLeaveHospitalDocTrans.java
  15. 105 75
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java
  16. 10 5
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxPathologyShipDocTrans.java
  17. 17 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxRescueDocTrans.java
  18. 17 10
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxStagesSummaryDocTrans.java
  19. 36 31
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java
  20. 30 19
      trans/src/main/java/com/lantone/qc/trans/changx/ChangxTransferRecordDocTrans.java

+ 3 - 1
trans/src/main/java/com/lantone/qc/trans/changx/ChangxAnesthesiaRelatedDocTrans.java

@@ -16,6 +16,8 @@ import java.util.Map;
  * @Date: 2020/5/11 16:23
  */
 public class ChangxAnesthesiaRelatedDocTrans extends ModelDocTrans {
+    private String modeId = "12";
+
     @Override
     public List<AnesthesiaRelatedDoc> extract(MedrecVo medrecVo) {
         List<AnesthesiaRelatedDoc> retList = Lists.newArrayList();
@@ -27,7 +29,7 @@ public class ChangxAnesthesiaRelatedDocTrans extends ModelDocTrans {
     }
 
     private AnesthesiaRelatedDoc getAnesthesiaRelatedDoc(Map<String, String> content) {
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(content, keyContrasts);
+        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(content, keyContrasts, modeId);
         AnesthesiaRelatedDoc anesthesiaRelatedDoc = new AnesthesiaRelatedDoc();
         anesthesiaRelatedDoc.setStructureMap(structureMap);
         anesthesiaRelatedDoc.setPageData((Map) content);

+ 30 - 23
trans/src/main/java/com/lantone/qc/trans/changx/ChangxBeHospitalizedDocTrans.java

@@ -3,6 +3,7 @@ package com.lantone.qc.trans.changx;
 import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
@@ -18,37 +19,43 @@ import java.util.Map;
  * @time: 2020/3/5 15:47
  */
 public class ChangxBeHospitalizedDocTrans extends ModelDocTrans {
+    private String modeId = "1";
 
     @Override
     public BeHospitalizedDoc extract(MedrecVo medrecVo) {
         Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
         String content = contentMap.get("xmlText").toString();
-        Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
-        String sex = "男";
-        for (String key : sourceMap.keySet()) {
-            if (key.indexOf("性别") > -1) {
-                if (sourceMap.get(key).indexOf("男") > -1 || sourceMap.get(key).indexOf("女") > -1) {
-                    sex = StringUtil.removeBlank(sourceMap.get(key));
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
+            String sex = "男";
+            for (String key : sourceMap.keySet()) {
+                if (key.indexOf("性别") > -1) {
+                    if (sourceMap.get(key).indexOf("男") > -1 || sourceMap.get(key).indexOf("女") > -1) {
+                        sex = StringUtil.removeBlank(sourceMap.get(key));
+                    }
                 }
             }
-        }
-        sourceMap.put(sex, "");
-        sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
-        sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
-        String specialCheck = structureMap.get("专科检查");
-        if (StringUtil.isNotBlank(specialCheck)) {
-            structureMap.put("专科体格检查", specialCheck);
-        } else {
-            String tgjc = concatSpecialCheck(sourceMap);
-            if (StringUtil.isNotBlank(tgjc)) {
-                structureMap.put("专科体格检查", tgjc);
+            sourceMap.put(sex, "");
+            sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+            structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
+            String specialCheck = structureMap.get("专科检查");
+            if (StringUtil.isNotBlank(specialCheck)) {
+                structureMap.put("专科体格检查", specialCheck);
+            } else {
+                String tgjc = concatSpecialCheck(sourceMap);
+                if (StringUtil.isNotBlank(tgjc)) {
+                    structureMap.put("专科体格检查", tgjc);
+                }
+            }
+            String marital = structureMap.get("婚育史");
+            String marry = structureMap.get("婚姻");
+            if (StringUtil.isBlank(marital) && StringUtil.isNotBlank(marry)) {
+                structureMap.put("婚育史", marry);
             }
-        }
-        String marital = structureMap.get("婚育史");
-        String marry = structureMap.get("婚姻");
-        if (StringUtil.isBlank(marital) && StringUtil.isNotBlank(marry)) {
-            structureMap.put("婚育史", marry);
         }
         BeHospitalizedDoc beHospitalizedDoc = ModelDocGenerate.beHospitalizedDocGen(structureMap);
         beHospitalizedDoc.setText(content);

+ 19 - 11
trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicBloodEffectDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.ClinicBloodEffectDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,6 +19,8 @@ import java.util.Map;
  * @desc 输血后效果评价
  **/
 public class ChangxClinicBloodEffectDocTrans extends ModelDocTrans {
+    private String modeId = "32";
+
     @Override
     public List<ClinicBloodEffectDoc> extract(MedrecVo medrecVo) {
         List<ClinicBloodEffectDoc> retList = Lists.newArrayList();
@@ -28,20 +30,26 @@ public class ChangxClinicBloodEffectDocTrans extends ModelDocTrans {
         });
         return retList;
     }
+
     private ClinicBloodEffectDoc getClinicalBloodDoc(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, keyContrasts);
-
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         ClinicBloodEffectDoc clinicBloodEffectDoc = ModelDocGenerate.clinicBloodEffectDoc(cutWordMap);
-        clinicBloodEffectDoc.setText(text);
+        clinicBloodEffectDoc.setText(cutWordMap.get("text"));
         clinicBloodEffectDoc.setPageData((Map) cutWordMap);
 
         return clinicBloodEffectDoc;

+ 18 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxClinicalBloodDocTrans.java

@@ -3,6 +3,7 @@ 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.FastJsonUtils;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
@@ -19,6 +20,7 @@ import java.util.Map;
  * @time: 2020/3/17 13:21
  */
 public class ChangxClinicalBloodDocTrans extends ModelDocTrans {
+    private String modeId = "10";
 
     @Override
     public List<ClinicalBloodDoc> extract(MedrecVo medrecVo) {
@@ -32,20 +34,26 @@ public class ChangxClinicalBloodDocTrans extends ModelDocTrans {
 
     private ClinicalBloodDoc getClinicalBloodDoc(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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, "");
-        cutWordMap.putAll(structureMap);
-        if (StringUtil.isNotBlank(structureMap.get("输注种类、血型、数量"))) {
-            cutWordMap.put("输血成分及数量", structureMap.get("输注种类、血型、数量"));
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, "");
+            cutWordMap.putAll(structureMap);
+            if (StringUtil.isNotBlank(structureMap.get("输注种类、血型、数量"))) {
+                cutWordMap.put("输血成分及数量", structureMap.get("输注种类、血型、数量"));
+            }
         }
 
         ClinicalBloodDoc clinicalBloodDoc = ModelDocGenerate.clinicalBloodDocGen(cutWordMap);
-        clinicalBloodDoc.setText(text);
+        clinicalBloodDoc.setText(cutWordMap.get("text"));
         clinicalBloodDoc.setPageData((Map) cutWordMap);
 
         return clinicalBloodDoc;

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

@@ -3,16 +3,17 @@ package com.lantone.qc.trans.changx;
 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.consultation.ConsultationApplicationDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationDoc;
 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.FastJsonUtils;
 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.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -27,6 +28,7 @@ import java.util.Set;
  * @time: 2020/3/17 13:22
  */
 public class ChangxConsultationDocTrans extends ModelDocTrans {
+    private String modeId = "31";
 
     @Override
     public List<ConsultationDoc> extract(MedrecVo medrecVo) {
@@ -82,18 +84,24 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
 
     private ConsultationRecordDoc getConsultationRecordDoc(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, consultationRecord_keyContrasts);
-
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, consultationRecord_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
-        MapUtil.keyAssig(cutWordMap, "记录医师", "签名");
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, consultationRecord_keyContrasts, modeId);
+
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, consultationRecord_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+            MapUtil.keyAssig(cutWordMap, "记录医师", "签名");
+        }
 
         ConsultationRecordDoc consultationRecordDoc = ModelDocGenerate.consultationRecordDocGen(cutWordMap);
-        consultationRecordDoc.setText(text);
+        consultationRecordDoc.setText(cutWordMap.get("text"));
         consultationRecordDoc.setPageData((Map) cutWordMap);
 
         return consultationRecordDoc;
@@ -134,17 +142,23 @@ public class ChangxConsultationDocTrans 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 text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, consultationApplication_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, modeId);
+
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, consultationApplication_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         ConsultationResultsDoc consultationResultsDoc = ModelDocGenerate.consultationResultsDocGen(cutWordMap);
-        consultationResultsDoc.setText(content);
+        consultationResultsDoc.setText(cutWordMap.get("text"));
         consultationResultsDoc.setPageData((Map) cutWordMap);
         return consultationResultsDoc;
     }
@@ -187,17 +201,23 @@ public class ChangxConsultationDocTrans extends ModelDocTrans {
 
     private ConsultationApplicationDoc getConsultationApplicationDoc(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 text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, consultationApplication_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, modeId);
+
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, consultationApplication_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         ConsultationApplicationDoc consultationApplicationDoc = ModelDocGenerate.consultationApplicationDocGen(cutWordMap);
-        consultationApplicationDoc.setText(text);
+        consultationApplicationDoc.setText(cutWordMap.get("text"));
         consultationApplicationDoc.setPageData((Map) cutWordMap);
 
         return consultationApplicationDoc;

+ 18 - 11
trans/src/main/java/com/lantone/qc/trans/changx/ChangxCrisisValueReportDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.CrisisValueReportDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,6 +19,7 @@ import java.util.Map;
  * @time: 2020/3/19 19:41
  */
 public class ChangxCrisisValueReportDocTrans extends ModelDocTrans {
+    private String modeId = "23";
 
     @Override
     public List<CrisisValueReportDoc> extract(MedrecVo medrecVo) {
@@ -32,18 +33,24 @@ public class ChangxCrisisValueReportDocTrans extends ModelDocTrans {
 
     private CrisisValueReportDoc getCrisisValueReportDoc(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, keyContrasts);
-        structureMap.put("医生姓名", structureMap.get("医生签名"));
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
+            structureMap.put("医生姓名", structureMap.get("医生签名"));
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         CrisisValueReportDoc crisisValueReportDoc = ModelDocGenerate.crisisValueReportDocGen(cutWordMap);
-        crisisValueReportDoc.setText(text);
+        crisisValueReportDoc.setText(cutWordMap.get("text"));
         crisisValueReportDoc.setPageData((Map) cutWordMap);
 
         return crisisValueReportDoc;

+ 17 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxCriticallyIllNoticeDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.CriticallyIllNoticeDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,6 +19,7 @@ import java.util.Map;
  * @time: 2020/3/19 19:41
  */
 public class ChangxCriticallyIllNoticeDocTrans extends ModelDocTrans {
+    private String modeId = "25";
 
     @Override
     public List<CriticallyIllNoticeDoc> extract(MedrecVo medrecVo) {
@@ -32,17 +33,23 @@ public class ChangxCriticallyIllNoticeDocTrans extends ModelDocTrans {
 
     private CriticallyIllNoticeDoc getCriticallyIllNoticeDoc(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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         CriticallyIllNoticeDoc criticallyIllNoticeDoc = ModelDocGenerate.criticallyIllNoticeDocGen(cutWordMap);
-        criticallyIllNoticeDoc.setText(text);
+        criticallyIllNoticeDoc.setText(cutWordMap.get("text"));
         criticallyIllNoticeDoc.setPageData((Map) cutWordMap);
 
         return criticallyIllNoticeDoc;

+ 17 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDailyCourseRecordDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.DailyCourseRecordDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
 
@@ -18,6 +18,7 @@ import java.util.Map;
  * @time: 2020/3/17 17:34
  */
 public class ChangxDailyCourseRecordDocTrans extends ModelDocTrans {
+    private String modeId = "56";
 
     @Override
     public List<DailyCourseRecordDoc> extract(MedrecVo medrecVo) {
@@ -31,17 +32,23 @@ public class ChangxDailyCourseRecordDocTrans extends ModelDocTrans {
 
     private DailyCourseRecordDoc getDailyCourseRecordDoc(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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         DailyCourseRecordDoc dailyCourseRecordDoc = new DailyCourseRecordDoc();
-        dailyCourseRecordDoc.setText(text);
+        dailyCourseRecordDoc.setText(cutWordMap.get("text"));
         dailyCourseRecordDoc.setPageData((Map) cutWordMap);
 
         return dailyCourseRecordDoc;

+ 17 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathCaseDiscussDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.DeathCaseDiscussDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,22 +19,29 @@ import java.util.Map;
  * @time: 2020/3/17 13:22
  */
 public class ChangxDeathCaseDiscussDocTrans extends ModelDocTrans {
+    private String modeId = "3";
 
     @Override
     public DeathCaseDiscussDoc extract(MedrecVo medrecVo) {
         Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
         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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         DeathCaseDiscussDoc deathCaseDiscussDoc = ModelDocGenerate.deathCaseDiscussDocGen(cutWordMap);
-        deathCaseDiscussDoc.setText(text);
+        deathCaseDiscussDoc.setText(cutWordMap.get("text"));
         deathCaseDiscussDoc.setPageData((Map) cutWordMap);
 
         return deathCaseDiscussDoc;

+ 17 - 11
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDeathRecordDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.DeathRecordDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,23 +19,29 @@ import java.util.Map;
  * @time: 2020/3/17 13:23
  */
 public class ChangxDeathRecordDocTrans extends ModelDocTrans {
+    private String modeId = "24";
 
     @Override
     public DeathRecordDoc extract(MedrecVo medrecVo) {
         Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
         String content = contentMap.get("xmlText").toString();
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        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, keyContrasts);
-
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         DeathRecordDoc deathRecordDoc = ModelDocGenerate.deathRecordDocGen(cutWordMap);
-        deathRecordDoc.setText(text);
+        deathRecordDoc.setText(cutWordMap.get("text"));
         deathRecordDoc.setPageData((Map) cutWordMap);
 
         return deathRecordDoc;

+ 22 - 15
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDifficultCaseDiscussDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.DifficultCaseDiscussDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,6 +19,7 @@ import java.util.Map;
  * @time: 2020/3/17 13:23
  */
 public class ChangxDifficultCaseDiscussDocTrans extends ModelDocTrans {
+    private String modeId = "19";
 
     @Override
     public List<DifficultCaseDiscussDoc> extract(MedrecVo medrecVo) {
@@ -32,17 +33,23 @@ public class ChangxDifficultCaseDiscussDocTrans extends ModelDocTrans {
 
     private DifficultCaseDiscussDoc getDifficultCaseDiscussDoc(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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         DifficultCaseDiscussDoc difficultCaseDiscussDoc = ModelDocGenerate.difficultCaseDiscussDocGen(cutWordMap);
-        difficultCaseDiscussDoc.setText(content);
+        difficultCaseDiscussDoc.setText(cutWordMap.get("text"));
         difficultCaseDiscussDoc.setPageData((Map) cutWordMap);
 
         return difficultCaseDiscussDoc;
@@ -63,11 +70,11 @@ public class ChangxDifficultCaseDiscussDocTrans extends ModelDocTrans {
     );
 
     private List<String> keyContrasts = Lists.newArrayList(
-          "讨论日期=讨论时间",
-          "人员及专业技术职务++++专业技术职务=参加讨论者",
-          "患者病情汇报=简要病情",
-          "讨论结果++++主持人小结意见=结论",
-          "签名++++=签名",
+            "讨论日期=讨论时间",
+            "人员及专业技术职务++++专业技术职务=参加讨论者",
+            "患者病情汇报=简要病情",
+            "讨论结果++++主持人小结意见=结论",
+            "签名++++=签名",
             "患者病情汇报=讨论内容"
     );
 

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

@@ -80,10 +80,6 @@ public class ChangxDocTrans extends DocTrans {
                 ChangxAnesthesiaRelatedDocTrans changxAnesthesiaRelatedDocTrans = new ChangxAnesthesiaRelatedDocTrans();
                 inputInfo.setAnesthesiaRelatedDocs(changxAnesthesiaRelatedDocTrans.extract(i));
             }
-            //            if (i.getTitle().equals("值班交接制度")) {
-            //                ChangxDutyShiftSystemDocTrans dutyShiftSystemDocTrans = new ChangxDutyShiftSystemDocTrans();
-            //                inputInfo.setDutyShiftSystemDocs(dutyShiftSystemDocTrans.extract(i));
-            //            }
             if (i.getTitle().equals("首次病程录")) {
                 ChangxFirstCourseRecordDocTrans firstCourseRecordDocTrans = new ChangxFirstCourseRecordDocTrans();
                 inputInfo.setFirstCourseRecordDoc(firstCourseRecordDocTrans.extract(i));
@@ -96,18 +92,10 @@ public class ChangxDocTrans extends DocTrans {
                 ChangxLeaveHospitalDocTrans leaveHospitalDocTrans = new ChangxLeaveHospitalDocTrans();
                 inputInfo.setLeaveHospitalDoc(leaveHospitalDocTrans.extract(i));
             }
-            //            if (i.getTitle().equals("分级护理制度")) {
-            //                ChangxNursingSystemDocTrans nursingSystemDocTrans = new ChangxNursingSystemDocTrans();
-            //                inputInfo.setNursingSystemDoc(nursingSystemDocTrans.extract(i));
-            //            }
             if (i.getTitle().equals("抢救记录")) {
                 ChangxRescueDocTrans rescueDocTrans = new ChangxRescueDocTrans();
                 inputInfo.setRescueDocs(rescueDocTrans.extract(i));
             }
-            //            if (i.getTitle().equals("病重通知书")) {
-            //                ChangxSeriouslyIllNoticeDocTrans seriouslyIllNoticeDocTrans = new ChangxSeriouslyIllNoticeDocTrans();
-            //                inputInfo.setSeriouslyIllNoticeDocs(seriouslyIllNoticeDocTrans.extract(i));
-            //            }
             if (i.getTitle().equals("阶段小结")) {
                 ChangxStagesSummaryDocTrans stagesSummaryDocTrans = new ChangxStagesSummaryDocTrans();
                 inputInfo.setStagesSummaryDocs(stagesSummaryDocTrans.extract(i));
@@ -121,14 +109,6 @@ public class ChangxDocTrans extends DocTrans {
                 ChangxPathologyShipDocTrans pathologyShipDocTrans = new ChangxPathologyShipDocTrans();
                 inputInfo.setPathologyShipDocs(pathologyShipDocTrans.extract(i));
             }
-            //            if (i.getTitle().equals("知情同意书")) {
-            //                ChangxInformedConsentDocTrans informedConsentDocTrans = new ChangxInformedConsentDocTrans();
-            //                inputInfo.setInformedConsentDoc(informedConsentDocTrans.extract(i));
-            //            }
-            //            if (i.getTitle().equals("谈话告知书")) {
-            //                ChangxNoticeOfConversationDocTrans noticeOfConversationDocTrans = new ChangxNoticeOfConversationDocTrans();
-            //                inputInfo.setNoticeOfConversationDoc(noticeOfConversationDocTrans.extract(i));
-            //            }
             if (i.getTitle().equals("日常病程录")) {
                 ChangxDailyCourseRecordDocTrans dailyCourseRecordDocTrans = new ChangxDailyCourseRecordDocTrans();
                 inputInfo.setDailyCourseRecordDocs(dailyCourseRecordDocTrans.extract(i));

+ 18 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxFirstCourseRecordDocTrans.java

@@ -2,11 +2,12 @@ package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -22,25 +23,32 @@ import static com.lantone.qc.trans.comsis.ModelDocGenerate.structureMapJoin;
  * @time: 2020/3/17 13:25
  */
 public class ChangxFirstCourseRecordDocTrans extends ModelDocTrans {
+    private String modeId = "2";
 
     @Override
     public FirstCourseRecordDoc extract(MedrecVo medrecVo) {
         Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
         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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = getCutWordMap(text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = getCutWordMap(text);
+            cutWordMap.putAll(structureMap);
+        }
 
         FirstCourseRecordDoc firstCourseRecordDoc = ModelDocGenerate.firstCourseRecordDocGen(cutWordMap);
-        firstCourseRecordDoc.setText(text);
+        firstCourseRecordDoc.setText(cutWordMap.get("text"));
         firstCourseRecordDoc.setPageData((Map) cutWordMap);
         List<String> keys = Lists.newArrayList("需求评估", "预期目标", "诊疗计划", "治疗监测计划");
-        String treatPlanJoin = structureMapJoin(structureMap, keys);
+        String treatPlanJoin = structureMapJoin(cutWordMap, keys);
         firstCourseRecordDoc.getTreatPlanLabel().setAiText(treatPlanJoin);
         return firstCourseRecordDoc;
     }

+ 12 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxLeaveHospitalDocTrans.java

@@ -1,11 +1,12 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
 import com.lantone.qc.pub.model.label.LeaveHospitalDoctorAdviceLabel;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import org.apache.commons.lang3.StringUtils;
@@ -19,15 +20,21 @@ import java.util.Map;
  * @time: 2020/3/17 13:25
  */
 public class ChangxLeaveHospitalDocTrans extends ModelDocTrans {
+    private String modeId = "5";
 
     @Override
     public LeaveHospitalDoc extract(MedrecVo medrecVo) {
         Map<String, Object> contentMap = ((List<Map>) medrecVo.getContent().get("content")).get(0);
         String content = contentMap.get("xmlText").toString();
-        Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
-        sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
-        sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
+            sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+            structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
+        }
         LeaveHospitalDoc leaveHospitalDoc = ModelDocGenerate.leaveHospitalDocGen(structureMap);
 
         if (StringUtils.isNotEmpty(structureMap.get("出院医嘱"))) {

+ 105 - 75
trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java

@@ -4,13 +4,9 @@ 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.operation.OperationDiscussionDoc;
-import com.lantone.qc.pub.model.doc.operation.OperationDoc;
-import com.lantone.qc.pub.model.doc.operation.OperationInformedConsentDoc;
-import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
-import com.lantone.qc.pub.model.doc.operation.OperationSafetyChecklistDoc;
-import com.lantone.qc.pub.model.doc.operation.PreoperativeDiscussionDoc;
+import com.lantone.qc.pub.model.doc.operation.*;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
@@ -28,7 +24,6 @@ import java.util.Set;
  * @time: 2020/3/20 17:11
  */
 public class ChangxOperationDocTrans extends ModelDocTrans {
-
     @Override
     public List<OperationDoc> extract(MedrecVo medrecVo) {
         List<OperationDoc> retList = Lists.newArrayList();
@@ -88,24 +83,31 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
     }
 
     private OperationDiscussionDoc getOperationDiscussionDoc(Map<String, Object> contentMap) {
+        String modeId = "18";
         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, operationDiscussion_keyContrasts);
-        if (StringUtil.isNotBlank(structureMap.get("手术开始时间"))) {
-            structureMap.put("手术时间", structureMap.get("手术开始时间"));
-        }
-        if (StringUtil.isNotBlank(structureMap.get("签名"))) {
-            structureMap.put("记录医师", structureMap.get("签名"));
-        }
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, operationDiscussion_keyContrasts, modeId);
+            if (StringUtil.isNotBlank(structureMap.get("手术开始时间"))) {
+                structureMap.put("手术时间", structureMap.get("手术开始时间"));
+            }
+            if (StringUtil.isNotBlank(structureMap.get("签名"))) {
+                structureMap.put("记录医师", structureMap.get("签名"));
+            }
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, operationDiscussion_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, operationDiscussion_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         OperationDiscussionDoc operationDiscussionDoc = ModelDocGenerate.operationDiscussionDocGen(cutWordMap);
-        operationDiscussionDoc.setText(text);
+        operationDiscussionDoc.setText(cutWordMap.get("text"));
         operationDiscussionDoc.setPageData((Map) cutWordMap);
 
         return operationDiscussionDoc;
@@ -176,21 +178,28 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
     }
 
     private OperationRecordDoc getOperationRecordDoc(Map<String, Object> contentMap) {
+        String modeId = "17";
         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, operationRecord_keyContrasts);
-        if (StringUtil.isNotBlank(structureMap.get("签名"))) {
-            structureMap.put("记录医师", structureMap.get("签名"));
-        }
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, operationRecord_keyContrasts, modeId);
+            if (StringUtil.isNotBlank(structureMap.get("签名"))) {
+                structureMap.put("记录医师", structureMap.get("签名"));
+            }
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, operationRecord_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, operationRecord_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         OperationRecordDoc operationRecordDoc = ModelDocGenerate.operationRecordDocGen(cutWordMap);
-        operationRecordDoc.setText(text);
+        operationRecordDoc.setText(cutWordMap.get("text"));
         operationRecordDoc.setPageData((Map) cutWordMap);
 
         return operationRecordDoc;
@@ -267,36 +276,43 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
     }
 
     private PreoperativeDiscussionDoc getPreoperativeDiscussionDoc(Map<String, Object> contentMap) {
+        String modeId = "11";
         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, preoperativeDiscussion_keyContrasts);
-        structureMap.put(
-                "术前准备内容",
-                (StringUtil.isBlank(structureMap.get("术前准备内容")) ? "" : structureMap.get("术前准备内容")) + (StringUtil.isBlank(structureMap.get("术前准备++++术前准备情况")) ? "" : structureMap.get("术前准备++++术前准备情况"))
-        );
-        structureMap.put(
-                "术前术后注意事项",
-                (StringUtil.isBlank(structureMap.get("术前术后注意事项")) ? "" : structureMap.get("术前术后注意事项")) + (StringUtil.isBlank(structureMap.get("术后注意事项")) ? "" : structureMap.get("术后注意事项"))
-        );
-        structureMap.put("讨论时间", structureMap.get("记录时间"));
-        if (StringUtil.isNotBlank(structureMap.get("签名"))) {
-            structureMap.put("记录医师", structureMap.get("签名"));
-        }
-        if (StringUtil.isNotBlank(structureMap.get("拟行治疗指征及禁忌症"))) {
-            structureMap.put("拟行术式", structureMap.get("拟行治疗指征及禁忌症"));
-        } else if (StringUtil.isNotBlank(structureMap.get("拟施手术方式"))) {
-            structureMap.put("拟行术式", structureMap.get("拟施手术方式"));
-        }
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, preoperativeDiscussion_keyContrasts, modeId);
+            structureMap.put(
+                    "术前准备内容",
+                    (StringUtil.isBlank(structureMap.get("术前准备内容")) ? "" : structureMap.get("术前准备内容")) + (StringUtil.isBlank(structureMap.get("术前准备++++术前准备情况")) ? "" : structureMap.get("术前准备++++术前准备情况"))
+            );
+            structureMap.put(
+                    "术前术后注意事项",
+                    (StringUtil.isBlank(structureMap.get("术前术后注意事项")) ? "" : structureMap.get("术前术后注意事项")) + (StringUtil.isBlank(structureMap.get("术后注意事项")) ? "" : structureMap.get("术后注意事项"))
+            );
+            structureMap.put("讨论时间", structureMap.get("记录时间"));
+            if (StringUtil.isNotBlank(structureMap.get("签名"))) {
+                structureMap.put("记录医师", structureMap.get("签名"));
+            }
+            if (StringUtil.isNotBlank(structureMap.get("拟行治疗指征及禁忌症"))) {
+                structureMap.put("拟行术式", structureMap.get("拟行治疗指征及禁忌症"));
+            } else if (StringUtil.isNotBlank(structureMap.get("拟施手术方式"))) {
+                structureMap.put("拟行术式", structureMap.get("拟施手术方式"));
+            }
 
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, preoperativeDiscussion_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, preoperativeDiscussion_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         PreoperativeDiscussionDoc preoperativeDiscussionDoc = ModelDocGenerate.preoperativeDiscussionDocGen(cutWordMap);
-        preoperativeDiscussionDoc.setText(text);
+        preoperativeDiscussionDoc.setText(cutWordMap.get("text"));
         preoperativeDiscussionDoc.setPageData((Map) cutWordMap);
 
         return preoperativeDiscussionDoc;
@@ -367,18 +383,25 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
     }
 
     private OperationInformedConsentDoc getOperationInformedConsentDoc(Map<String, Object> contentMap) {
+        String modeId = "16";
         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, operationInformedConsent_keyContrasts);
-
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, operationInformedConsent_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, operationInformedConsent_keyContrasts, modeId);
+
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, operationInformedConsent_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         OperationInformedConsentDoc operationInformedConsentDoc = ModelDocGenerate.operationInformedConsentDocGen(cutWordMap);
-        operationInformedConsentDoc.setText(text);
+        operationInformedConsentDoc.setText(cutWordMap.get("text"));
         operationInformedConsentDoc.setPageData((Map) cutWordMap);
 
         return operationInformedConsentDoc;
@@ -441,18 +464,25 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
     }
 
     private OperationSafetyChecklistDoc getOperationSafetyChecklistDoc(Map<String, Object> contentMap) {
+        String modeId = "21";
         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, operationSafetyChecklist_keyContrasts);
-
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, operationSafetyChecklist_sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, operationSafetyChecklist_keyContrasts, modeId);
+
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, operationSafetyChecklist_sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         OperationSafetyChecklistDoc operationSafetyChecklistDoc = ModelDocGenerate.operationSafetyChecklistDocGen(cutWordMap);
-        operationSafetyChecklistDoc.setText(text);
+        operationSafetyChecklistDoc.setText(cutWordMap.get("text"));
         operationSafetyChecklistDoc.setPageData((Map) cutWordMap);
 
         return operationSafetyChecklistDoc;

+ 10 - 5
trans/src/main/java/com/lantone/qc/trans/changx/ChangxPathologyShipDocTrans.java

@@ -3,6 +3,7 @@ package com.lantone.qc.trans.changx;
 import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.PathologyShipDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
 import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
@@ -29,11 +30,15 @@ public class ChangxPathologyShipDocTrans extends ModelDocTrans {
 
     private PathologyShipDoc getPathologyShipDoc(Map<String, Object> contentMap) {
         String content = contentMap.get("xmlText").toString();
-        Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
-        sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
-        sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
-
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> sourceMap = CxXmlUtil.firstLevelNodeValue(content);
+            sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+            structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts);
+        }
         PathologyShipDoc pathologyShipDoc = new PathologyShipDoc();
         pathologyShipDoc.setStructureMap(structureMap);
         pathologyShipDoc.setPageData((Map) structureMap);

+ 17 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxRescueDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.RescueDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,6 +19,7 @@ import java.util.Map;
  * @time: 2020/3/17 17:34
  */
 public class ChangxRescueDocTrans extends ModelDocTrans {
+    private String modeId = "22";
 
     @Override
     public List<RescueDoc> extract(MedrecVo medrecVo) {
@@ -32,17 +33,23 @@ public class ChangxRescueDocTrans extends ModelDocTrans {
 
     private RescueDoc getRescueDoc(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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         RescueDoc rescueDoc = ModelDocGenerate.rescueDocGen(cutWordMap);
-        rescueDoc.setText(text);
+        rescueDoc.setText(cutWordMap.get("text"));
         rescueDoc.setPageData((Map) cutWordMap);
 
         return rescueDoc;

+ 17 - 10
trans/src/main/java/com/lantone/qc/trans/changx/ChangxStagesSummaryDocTrans.java

@@ -1,11 +1,11 @@
 package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.StagesSummaryDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
-import com.lantone.qc.pub.util.StringUtil;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.ModelDocGenerate;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 import com.lantone.qc.trans.comsis.Preproc;
@@ -19,6 +19,7 @@ import java.util.Map;
  * @time: 2020/3/19 19:41
  */
 public class ChangxStagesSummaryDocTrans extends ModelDocTrans {
+    private String modeId = "28";
 
     @Override
     public List<StagesSummaryDoc> extract(MedrecVo medrecVo) {
@@ -32,17 +33,23 @@ public class ChangxStagesSummaryDocTrans extends ModelDocTrans {
 
     private StagesSummaryDoc getStagesSummaryDoc(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, keyContrasts);
+        Map<String, String> cutWordMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            cutWordMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            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, keyContrasts, modeId);
 
-        String text = CxXmlUtil.getXmlText(content);
-        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-        cutWordMap.putAll(structureMap);
+            String text = CxXmlUtil.getXmlText(content);
+            structureMap.put("text", text);
+            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+            cutWordMap.putAll(structureMap);
+        }
 
         StagesSummaryDoc stagesSummaryDoc = ModelDocGenerate.stagesSummaryDocGen(cutWordMap);
-        stagesSummaryDoc.setText(text);
+        stagesSummaryDoc.setText(cutWordMap.get("text"));
         stagesSummaryDoc.setPageData((Map) cutWordMap);
 
         return stagesSummaryDoc;

+ 36 - 31
trans/src/main/java/com/lantone/qc/trans/changx/ChangxThreeLevelWardDocTrans.java

@@ -13,6 +13,7 @@ import com.lantone.qc.pub.model.doc.ward.AttendingDoctorWardDoc;
 import com.lantone.qc.pub.model.doc.ward.DirectorDoctorWardDoc;
 import com.lantone.qc.pub.model.doc.ward.GeneralDoctorWardDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.SpringContextUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
@@ -35,7 +36,7 @@ import java.util.regex.Pattern;
  */
 @Setter
 public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
-
+    private String modeId = "4";
     private List<String> recTitles;
     private List<OperationDoc> operationDocs;
 
@@ -56,34 +57,39 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
 
     private void classifyThreeLevelWardDoc(ThreeLevelWardDoc threeLevelWardDoc, 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(), "");
-        String recTitle = contentMap.get("recTitle").toString();
-        if (recTitles.contains(recTitle)) {
-            xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
-        }
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
-        structureMap.put("查房日期", structureMap.get("记录时间"));
-
-        Map<String, String> cutWordMap = Maps.newHashMap();
-        String text = CxXmlUtil.getXmlText(content);
-        if (StringUtil.isNotBlank(text)) {
-            if (StringUtil.isBlank(structureMap.get("病情记录"))) {
-                structureMap.put("病情记录", text);
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
+            xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            String recTitle = contentMap.get("recTitle").toString();
+            if (recTitles.contains(recTitle)) {
+                xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
             }
-            cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
-            if (StringUtil.isBlank(structureMap.get("记录医师"))) {
-                Pattern p = Pattern.compile("^[^\\u4e00-\\u9fa5]+$");//分词结果如果不包含中文为日期,则不覆盖
-                if (StringUtil.isNotEmpty(cutWordMap.get("医师签名"))) {
-                    Matcher m = p.matcher(cutWordMap.get("医师签名"));
-                    if (!m.matches()) {
-                        structureMap.put("记录医师", cutWordMap.get("医师签名"));
-                    }
+            structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts, modeId);
+            structureMap.put("查房日期", structureMap.get("记录时间"));
+
+            Map<String, String> cutWordMap = Maps.newHashMap();
+            String text = CxXmlUtil.getXmlText(content);
+            if (StringUtil.isNotBlank(text)) {
+                if (StringUtil.isBlank(structureMap.get("病情记录"))) {
+                    structureMap.put("病情记录", text);
                 }
-                if (StringUtil.isNotEmpty(cutWordMap.get("记录医生"))) {
-                    Matcher m = p.matcher(cutWordMap.get("记录医生"));
-                    if (!m.matches()) {
-                        structureMap.put("记录医师", cutWordMap.get("记录医生"));
+                cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+                if (StringUtil.isBlank(structureMap.get("记录医师"))) {
+                    Pattern p = Pattern.compile("^[^\\u4e00-\\u9fa5]+$");//分词结果如果不包含中文为日期,则不覆盖
+                    if (StringUtil.isNotEmpty(cutWordMap.get("医师签名"))) {
+                        Matcher m = p.matcher(cutWordMap.get("医师签名"));
+                        if (!m.matches()) {
+                            structureMap.put("记录医师", cutWordMap.get("医师签名"));
+                        }
+                    }
+                    if (StringUtil.isNotEmpty(cutWordMap.get("记录医生"))) {
+                        Matcher m = p.matcher(cutWordMap.get("记录医生"));
+                        if (!m.matches()) {
+                            structureMap.put("记录医师", cutWordMap.get("记录医生"));
+                        }
                     }
                 }
             }
@@ -195,11 +201,10 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
         Pattern p = Pattern.compile("(?<=主治医师).+?(?=住院医师)");
         Matcher m = p.matcher(content);
         String result = "";
-        while(m.find())
-        {
+        while (m.find()) {
             result = m.group().trim();
         }
-        return title.contains("共同照护讨论记录") && StringUtil.isNotEmpty(result.replace(":","").replace(":",""));
+        return title.contains("共同照护讨论记录") && StringUtil.isNotEmpty(result.replace(":", "").replace(":", ""));
     }
 
     private String subTitle(String srcText) {
@@ -261,7 +266,7 @@ public class ChangxThreeLevelWardDocTrans extends ModelDocTrans {
                 Date operatorEndDate = StringUtil.parseDateTime(operatorEndDateStr);
                 if (operatorEndDate != null) {
                     long timeDifference = timeDifference(operatorEndDate, recordDate);
-                    if (timeDifference == 0){
+                    if (timeDifference == 0) {
                         continue;
                     }
                     if (timeDiff == 0 || timeDiff > timeDifference) {

+ 30 - 19
trans/src/main/java/com/lantone/qc/trans/changx/ChangxTransferRecordDocTrans.java

@@ -2,23 +2,18 @@ package com.lantone.qc.trans.changx;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.pub.model.doc.transferrecord.TransferIntoDoc;
 import com.lantone.qc.pub.model.doc.transferrecord.TransferOutDoc;
 import com.lantone.qc.pub.model.doc.transferrecord.TransferRecordDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.trans.ModelDocTrans;
-import com.lantone.qc.dbanaly.facade.changx.CxXmlUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.*;
 
 /**
  * @Description: 转科记录文档生成
@@ -142,11 +137,17 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
     }
 
     private TransferIntoDoc getTransferIntoDoc(Map<String, Object> contentMap) {
+        String modeId = "26";
         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, keyContrasts);
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
+            xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+            structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts, modeId);
+        }
 
         //        sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
         TransferIntoDoc transferIntoDoc = new TransferIntoDoc();
@@ -180,8 +181,13 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
 
     private TransferRecordDoc getTransferAllDoc(Map<String, Object> contentMap) {
         String content = contentMap.get("xmlText").toString();
-        Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
-        Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
+            structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
+        }
         TransferRecordDoc transferAllDoc = new TransferRecordDoc();
         transferAllDoc.setText(content);
         transferAllDoc.setStructureMap(structureMap);
@@ -212,12 +218,17 @@ public class ChangxTransferRecordDocTrans extends ModelDocTrans {
     }
 
     private TransferOutDoc getTransferOutDoc(Map<String, Object> contentMap) {
+        String modeId = "27";
         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, keyContrasts);
-
+        Map<String, String> structureMap = null;
+        if (contentMap.get("isParsed") != null && "1".equals(contentMap.get("isParsed").toString())) {
+            structureMap = (Map) FastJsonUtils.getJsonToMap(content);
+        } else {
+            Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue(content);
+            xmlNodeValueMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            xmlNodeValueMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+            structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts, modeId);
+        }
         TransferOutDoc transferOutDoc = new TransferOutDoc();
         transferOutDoc.setText(content);
         transferOutDoc.setStructureMap(structureMap);