Explorar el Código

手术文档修改

rengb hace 5 años
padre
commit
0e40d9737b

+ 1 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/operation/OperationDiscussionDoc.java

@@ -14,5 +14,6 @@ import lombok.Setter;
 @Getter
 @Setter
 public class OperationDiscussionDoc extends ModelDoc {
+    private String operationName;
     OperationDiscussionLabel operationDiscussionLabel = new OperationDiscussionLabel();
 }

+ 1 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/operation/OperationDoc.java

@@ -12,6 +12,7 @@ import lombok.Setter;
 @Setter
 public class OperationDoc {
 
+    private String operationName;
     private OperationDiscussionDoc operationDiscussionDoc;
     private OperationRecordDoc operationRecordDoc;
     private PreoperativeDiscussionDoc preoperativeDiscussionDoc;

+ 1 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/operation/OperationRecordDoc.java

@@ -12,4 +12,5 @@ import lombok.Setter;
 @Getter
 @Setter
 public class OperationRecordDoc extends ModelDoc {
+    private String operationName;
 }

+ 1 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/operation/PreoperativeDiscussionDoc.java

@@ -13,4 +13,5 @@ import lombok.Setter;
 @Getter
 @Setter
 public class PreoperativeDiscussionDoc extends ModelDoc {
+    private String operationName;
 }

+ 115 - 55
trans/src/main/java/com/lantone/qc/trans/changx/ChangxOperationDocTrans.java

@@ -1,6 +1,8 @@
 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.pub.model.doc.operation.OperationDiscussionDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
@@ -15,6 +17,7 @@ import com.lantone.qc.trans.comsis.Preproc;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * @Description: 手术文档生成
@@ -27,71 +30,128 @@ public class ChangxOperationDocTrans extends ModelDocTrans {
     public List<OperationDoc> extract(MedrecVo medrecVo) {
         List<OperationDoc> retList = Lists.newArrayList();
         Map<String, Object> content = medrecVo.getContent();
+
+        List<String>
+                operationDiscussionLabel = null, operationDiscussionContent = null,
+                operationRecordLabel = null, operationRecordContent = null,
+                preoperativeDiscussionLabel = null, preoperativeDiscussionContent = null;
+
         Map<String, List<String>> labelMap = (Map) content.get("label");
-        List<String> operationDiscussionLabel = labelMap.get("术后首次病程及谈话记录");
-        List<String> preoperativeDiscussionLabel = labelMap.get("术前讨论、术前小结");
-        List<String> operationRecordLabel = labelMap.get("术前讨论、术前小结");
-        List<Map<String, String>> operations = (List) content.get("content");
+        if (labelMap != null) {
+            operationDiscussionLabel = labelMap.get("术后首次病程及谈话记录");
+            operationRecordLabel = labelMap.get("手术记录");
+            preoperativeDiscussionLabel = labelMap.get("术前讨论、术前小结");
+        }
+        Map<String, List<String>> contentMap = (Map) content.get("content");
+        if (contentMap != null) {
+            operationDiscussionContent = contentMap.get("术后首次病程及谈话记录");
+            operationRecordContent = contentMap.get("手术记录");
+            preoperativeDiscussionContent = contentMap.get("术前讨论、术前小结");
+        }
+
+        Map<String, OperationDiscussionDoc> operationDiscussionDocMap = getOperationDiscussionDocMap(operationDiscussionContent, operationDiscussionLabel);
+        Map<String, OperationRecordDoc> operationRecordDocMap = getOperationRecordDocMap(operationRecordContent, operationRecordLabel);
+        Map<String, PreoperativeDiscussionDoc> preoperativeDiscussionDocMap = getPreoperativeDiscussionDocMap(preoperativeDiscussionContent, preoperativeDiscussionLabel);
 
-        String operationDiscussionContent, preoperativeDiscussionContent, operationRecordContent;
-        Map<String, String> operationDiscussionStructureMap, preoperativeDiscussionStructureMap, operationRecordStructureMap;
-        for (Map<String, String> operation : operations) {
+        Set<String> operationNameSet = Sets.newHashSet();
+        operationNameSet.addAll(operationDiscussionDocMap.keySet());
+        operationNameSet.addAll(operationRecordDocMap.keySet());
+        operationNameSet.addAll(preoperativeDiscussionDocMap.keySet());
+
+        operationNameSet.forEach(operationName -> {
             OperationDoc operationDoc = new OperationDoc();
+            operationDoc.setOperationName(operationName);
+            operationDoc.setOperationDiscussionDoc(operationDiscussionDocMap.get(operationName));
+            operationDoc.setOperationRecordDoc(operationRecordDocMap.get(operationName));
+            operationDoc.setPreoperativeDiscussionDoc(preoperativeDiscussionDocMap.get(operationName));
+            retList.add(operationDoc);
+        });
 
-            operationDiscussionContent = operation.get("术后首次病程及谈话记录");
-            if (StringUtil.isNotBlank(operationDiscussionContent)) {
-                operationDiscussionStructureMap =
-                        Preproc.extract_doc_pub(
-                                false,
-                                ListUtil.isEmpty(operationDiscussionLabel) ? ModelStandardKeys.operationDiscussion : operationDiscussionLabel,
-                                operationDiscussionContent
-                        );
-                OperationDiscussionDoc operationDiscussionDoc = ModelDocGenerate.operationDiscussionDocGen(operationDiscussionStructureMap);
-                operationDiscussionDoc.setText(operationDiscussionContent);
-                operationDoc.setOperationDiscussionDoc(operationDiscussionDoc);
-            }
+        return retList;
+    }
 
-            operationRecordContent = operation.get("手术记录");
-            if (StringUtil.isNotBlank(operationRecordContent)) {
-                operationRecordStructureMap =
-                        Preproc.extract_doc_pub(
-                                false,
-                                ListUtil.isEmpty(operationRecordLabel) ? ModelStandardKeys.operationRecord : operationRecordLabel,
-                                operationRecordContent
-                        );
-                OperationRecordDoc operationRecordDoc = ModelDocGenerate.operationRecordDocGen(operationRecordStructureMap);
-                operationRecordDoc.setText(operationRecordContent);
-                operationDoc.setOperationRecordDoc(operationRecordDoc);
+    private Map<String, OperationDiscussionDoc> getOperationDiscussionDocMap(List<String> contents, List<String> label) {
+        Map<String, OperationDiscussionDoc> retMap = Maps.newHashMap();
+        if (ListUtil.isEmpty(contents)) {
+            return retMap;
+        }
+        label = ListUtil.isEmpty(label) ? ModelStandardKeys.operationDiscussion : label;
+        Map<String, String> operationDiscussionStructureMap = null;
+        int index = 1;
+        String operationName = null;
+        for (String content : contents) {
+            if (StringUtil.isBlank(content)) {
+                continue;
             }
+            operationDiscussionStructureMap = Preproc.extract_doc_pub(false, label, content);
+            operationName = index + "";
+            OperationDiscussionDoc operationDiscussionDoc = ModelDocGenerate.operationDiscussionDocGen(operationDiscussionStructureMap);
+            operationDiscussionDoc.setText(content);
+            operationDiscussionDoc.setOperationName(operationName);
+            retMap.put(operationName, operationDiscussionDoc);
+            index++;
+        }
+        return retMap;
+    }
 
-            preoperativeDiscussionContent = operation.get("术前讨论、术前小结");
-            if (StringUtil.isNotBlank(preoperativeDiscussionContent)) {
-                preoperativeDiscussionStructureMap =
-                        Preproc.extract_doc_pub(
-                                false,
-                                ListUtil.isEmpty(preoperativeDiscussionLabel) ? ModelStandardKeys.preoperativeDiscussion : preoperativeDiscussionLabel,
-                                preoperativeDiscussionContent
-                        );
-                preoperativeDiscussionStructureMap.put("拟行术式", preoperativeDiscussionStructureMap.get("拟施手术方式、名称及可能的变更"));
-                preoperativeDiscussionStructureMap.remove("拟施手术方式、名称及可能的变更");
-                preoperativeDiscussionStructureMap.put("手术指征", preoperativeDiscussionStructureMap.get("手术指征与禁忌征"));
-                preoperativeDiscussionStructureMap.remove("手术指征与禁忌征");
-                preoperativeDiscussionStructureMap.put("可能意外和防范措施", preoperativeDiscussionStructureMap.get("主要术中、术后风险及防范措施"));
-                preoperativeDiscussionStructureMap.remove("主要术中、术后风险及防范措施");
-                preoperativeDiscussionStructureMap.put("术前术后注意事项", preoperativeDiscussionStructureMap.get("术中、术后注意事项(含护理事项)"));
-                preoperativeDiscussionStructureMap.remove("术中、术后注意事项(含护理事项)");
-                preoperativeDiscussionStructureMap.put("麻醉方式", preoperativeDiscussionStructureMap.get("拟施麻醉方式"));
-                preoperativeDiscussionStructureMap.remove("拟施麻醉方式");
-                preoperativeDiscussionStructureMap.put("术前准备内容", preoperativeDiscussionStructureMap.get("术前特殊准备"));
-                preoperativeDiscussionStructureMap.remove("术前特殊准备");
-                PreoperativeDiscussionDoc preoperativeDiscussionDoc = ModelDocGenerate.preoperativeDiscussionDocGen(preoperativeDiscussionStructureMap);
-                preoperativeDiscussionDoc.setText(preoperativeDiscussionContent);
-                operationDoc.setPreoperativeDiscussionDoc(preoperativeDiscussionDoc);
+    private Map<String, OperationRecordDoc> getOperationRecordDocMap(List<String> contents, List<String> label) {
+        Map<String, OperationRecordDoc> retMap = Maps.newHashMap();
+        if (ListUtil.isEmpty(contents)) {
+            return retMap;
+        }
+        label = ListUtil.isEmpty(label) ? ModelStandardKeys.operationRecord : label;
+        Map<String, String> operationRecordStructureMap = null;
+        int index = 1;
+        String operationName = null;
+        for (String content : contents) {
+            if (StringUtil.isBlank(content)) {
+                continue;
             }
+            operationRecordStructureMap = Preproc.extract_doc_pub(false, label, content);
+            operationName = index + "";
+            OperationRecordDoc operationRecordDoc = ModelDocGenerate.operationRecordDocGen(operationRecordStructureMap);
+            operationRecordDoc.setText(content);
+            operationRecordDoc.setOperationName(operationName);
+            retMap.put(operationName, operationRecordDoc);
+            index++;
+        }
+        return retMap;
+    }
 
-            retList.add(operationDoc);
+    private Map<String, PreoperativeDiscussionDoc> getPreoperativeDiscussionDocMap(List<String> contents, List<String> label) {
+        Map<String, PreoperativeDiscussionDoc> retMap = Maps.newHashMap();
+        if (ListUtil.isEmpty(contents)) {
+            return retMap;
         }
-        return retList;
+        label = ListUtil.isEmpty(label) ? ModelStandardKeys.preoperativeDiscussion : label;
+        Map<String, String> preoperativeDiscussionStructureMap = null;
+        int index = 1;
+        String operationName = null;
+        for (String content : contents) {
+            if (StringUtil.isBlank(content)) {
+                continue;
+            }
+            preoperativeDiscussionStructureMap = Preproc.extract_doc_pub(false, label, content);
+            operationName = index + "";
+            preoperativeDiscussionStructureMap.put("拟行术式", preoperativeDiscussionStructureMap.get("拟施手术方式、名称及可能的变更"));
+            preoperativeDiscussionStructureMap.remove("拟施手术方式、名称及可能的变更");
+            preoperativeDiscussionStructureMap.put("手术指征", preoperativeDiscussionStructureMap.get("手术指征与禁忌征"));
+            preoperativeDiscussionStructureMap.remove("手术指征与禁忌征");
+            preoperativeDiscussionStructureMap.put("可能意外和防范措施", preoperativeDiscussionStructureMap.get("主要术中、术后风险及防范措施"));
+            preoperativeDiscussionStructureMap.remove("主要术中、术后风险及防范措施");
+            preoperativeDiscussionStructureMap.put("术前术后注意事项", preoperativeDiscussionStructureMap.get("术中、术后注意事项(含护理事项)"));
+            preoperativeDiscussionStructureMap.remove("术中、术后注意事项(含护理事项)");
+            preoperativeDiscussionStructureMap.put("麻醉方式", preoperativeDiscussionStructureMap.get("拟施麻醉方式"));
+            preoperativeDiscussionStructureMap.remove("拟施麻醉方式");
+            preoperativeDiscussionStructureMap.put("术前准备内容", preoperativeDiscussionStructureMap.get("术前特殊准备"));
+            preoperativeDiscussionStructureMap.remove("术前特殊准备");
+            PreoperativeDiscussionDoc preoperativeDiscussionDoc = ModelDocGenerate.preoperativeDiscussionDocGen(preoperativeDiscussionStructureMap);
+            preoperativeDiscussionDoc.setText(content);
+            preoperativeDiscussionDoc.setOperationName(operationName);
+            retMap.put(operationName, preoperativeDiscussionDoc);
+            index++;
+        }
+        return retMap;
     }
 
 }