소스 검색

日常病程录添加

rengb 5 년 전
부모
커밋
061c0e9544

+ 3 - 0
public/src/main/java/com/lantone/qc/pub/model/InputInfo.java

@@ -1,5 +1,6 @@
 package com.lantone.qc.pub.model;
 
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.lantone.qc.pub.model.doc.*;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationDoc;
@@ -86,6 +87,8 @@ public class InputInfo {
     private List<PathologyShipDoc> pathologyShipDocs = new ArrayList<>();
     //诊疗合理性
     private List<ReasonableDiagnosisDoc> reasonableDiagnosisDocs = new ArrayList<>();
+    //日常病程录
+    private List<DailyCourseRecordDoc> dailyCourseRecordDocs = Lists.newArrayList();
 
     //新增记录
     public <T> void addDoc(List<T> list, T obj) {

+ 15 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/DailyCourseRecordDoc.java

@@ -0,0 +1,15 @@
+package com.lantone.qc.pub.model.doc;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @ClassName : RescueDoc
+ * @Description : 日常病程录文档
+ * @Author : 楼辉荣
+ * @Date: 2020-03-17 15:14
+ */
+@Setter
+@Getter
+public class DailyCourseRecordDoc extends ModelDoc {
+}

+ 57 - 0
trans/src/main/java/com/lantone/qc/trans/changx/ChangxDailyCourseRecordDocTrans.java

@@ -0,0 +1,57 @@
+package com.lantone.qc.trans.changx;
+
+import com.google.common.collect.Lists;
+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.trans.ModelDocTrans;
+import com.lantone.qc.trans.changx.util.CxXmlUtil;
+import com.lantone.qc.trans.comsis.OrdinaryAssistant;
+import com.lantone.qc.trans.comsis.Preproc;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 日常病程录文档生成
+ * @author: rengb
+ * @time: 2020/3/17 17:34
+ */
+public class ChangxDailyCourseRecordDocTrans extends ModelDocTrans {
+
+    @Override
+    public List<DailyCourseRecordDoc> extract(MedrecVo medrecVo) {
+        List<DailyCourseRecordDoc> retList = Lists.newArrayList();
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getDailyCourseRecordDoc(contentMap));
+        });
+        return retList;
+    }
+
+    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);
+
+        String text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region/Content_Text");
+        if (StringUtil.isBlank(text)) {
+            text = CxXmlUtil.getTextByNodePath(content, "//DocObjContent/Region");
+        }
+        Map<String, String> cutWordMap = Preproc.getCutWordMap(true, sourceTitles, text);
+        cutWordMap.putAll(structureMap);
+
+        DailyCourseRecordDoc dailyCourseRecordDoc = new DailyCourseRecordDoc();
+        dailyCourseRecordDoc.setText(text);
+        dailyCourseRecordDoc.setPageData((Map) cutWordMap);
+
+        return dailyCourseRecordDoc;
+    }
+
+    private List<String> sourceTitles = Lists.newArrayList();
+
+    private List<String> keyContrasts = Lists.newArrayList();
+
+}

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

@@ -123,6 +123,10 @@ public class ChangxDocTrans extends DocTrans {
             //                ChangxNoticeOfConversationDocTrans noticeOfConversationDocTrans = new ChangxNoticeOfConversationDocTrans();
             //                inputInfo.setNoticeOfConversationDoc(noticeOfConversationDocTrans.extract(i));
             //            }
+            if (i.getTitle().equals("日常病程录")) {
+                ChangxDailyCourseRecordDocTrans dailyCourseRecordDocTrans = new ChangxDailyCourseRecordDocTrans();
+                inputInfo.setDailyCourseRecordDocs(dailyCourseRecordDocTrans.extract(i));
+            }
         }
         pageDataHandle(inputInfo);
         return inputInfo;
@@ -153,7 +157,7 @@ public class ChangxDocTrans extends DocTrans {
 
         if (ListUtil.isNotEmpty(inputInfo.getClinicalBloodDocs())) {
             inputInfo.getPageData().put("输血/血制品病程记录", inputInfo.getClinicalBloodDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
-            inputInfo.setClinicalBloodDocs(inputInfo.getClinicalBloodDocs().stream().filter(i->i.getText().indexOf("输白蛋白")==-1).collect(Collectors.toList()));
+            inputInfo.setClinicalBloodDocs(inputInfo.getClinicalBloodDocs().stream().filter(i -> i.getText().indexOf("输白蛋白") == -1).collect(Collectors.toList()));
         }
         if (ListUtil.isNotEmpty(inputInfo.getClinicBloodEffectDocs())) {
             inputInfo.getPageData().put("输血后效果评价", inputInfo.getClinicBloodEffectDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
@@ -188,6 +192,9 @@ public class ChangxDocTrans extends DocTrans {
         if (ListUtil.isNotEmpty(inputInfo.getPathologyShipDocs())) {
             inputInfo.getPageData().put("病理检验送检单", inputInfo.getPathologyShipDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
         }
+        if (ListUtil.isNotEmpty(inputInfo.getDailyCourseRecordDocs())) {
+            inputInfo.getPageData().put("日常病程录", inputInfo.getDailyCourseRecordDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
+        }
 
         if (ListUtil.isNotEmpty(inputInfo.getConsultationDocs())) {
             List<Map<String, Object>> crPd = inputInfo.getConsultationDocs()
@@ -222,7 +229,7 @@ public class ChangxDocTrans extends DocTrans {
                     .stream()
                     .filter(operationDoc -> operationDoc != null && operationDoc.getOperationDiscussionDoc() != null)
                     .map(operationDoc -> operationDoc.getOperationDiscussionDoc().getPageData())
-//                    .sorted((map1, map2) -> pageDataTimeSort(map1, map2, "手术日期", "yyyy/MM/dd"))
+                    //                    .sorted((map1, map2) -> pageDataTimeSort(map1, map2, "手术日期", "yyyy/MM/dd"))
                     .collect(Collectors.toList());
             if (ListUtil.isNotEmpty(odPageDataList)) {
                 inputInfo.getPageData().put("术后首次病程及谈话记录", odPageDataList);
@@ -232,7 +239,7 @@ public class ChangxDocTrans extends DocTrans {
                     .stream()
                     .filter(operationDoc -> operationDoc != null && operationDoc.getOperationRecordDoc() != null)
                     .map(operationDoc -> operationDoc.getOperationRecordDoc().getPageData())
-//                    .sorted((map1, map2) -> pageDataTimeSort(map1, map2, "开始时间", "yyyy/MM/dd HH:mm"))
+                    //                    .sorted((map1, map2) -> pageDataTimeSort(map1, map2, "开始时间", "yyyy/MM/dd HH:mm"))
                     .collect(Collectors.toList());
             if (ListUtil.isNotEmpty(orPageDataList)) {
                 inputInfo.getPageData().put("手术记录", orPageDataList);
@@ -242,7 +249,7 @@ public class ChangxDocTrans extends DocTrans {
                     .stream()
                     .filter(operationDoc -> operationDoc != null && operationDoc.getPreoperativeDiscussionDoc() != null)
                     .map(operationDoc -> operationDoc.getPreoperativeDiscussionDoc().getPageData())
-//                    .sorted((map1, map2) -> pageDataTimeSort(map1, map2, "讨论时间", "yyyy年MM月dd日 HH时mm分"))
+                    //                    .sorted((map1, map2) -> pageDataTimeSort(map1, map2, "讨论时间", "yyyy年MM月dd日 HH时mm分"))
                     .collect(Collectors.toList());
             if (ListUtil.isNotEmpty(pdPageDataList)) {
                 inputInfo.getPageData().put("术前讨论、术前小结", pdPageDataList);