Browse Source

Merge branch 'hb/master' into hb/beilun

rengb 3 years atrás
parent
commit
dfe31e77a6

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathrecord/DEAR0342.java

@@ -32,6 +32,7 @@ public class DEAR0342 extends QCCatalogue {
         {
             case "1":               //长兴
             case "2":
+            case "5":
                 return "诊疗经过";
             default:
                 return "诊疗经过(重点记录病情演变、抢救经过)";

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0117.java

@@ -42,6 +42,7 @@ public class DIF0117 extends QCCatalogue {
         switch (Content.hospital_Id)
         {
             case "1":               //长兴
+            case "5":
                 return "讨论日期";
             default:
                 return "讨论时间";

+ 11 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/difficultcasediscuss/DIF0119.java

@@ -26,10 +26,11 @@ public class DIF0119 extends QCCatalogue {
         if (ListUtil.isEmpty(difficultCaseDiscussDocs)) {
             return;
         }
+        String key = getKeyByHospitalId();
         if (difficultCaseDiscussDocs != null && difficultCaseDiscussDocs.size() > 0) {
             for (DifficultCaseDiscussDoc dcdd : difficultCaseDiscussDocs) {
                 Map<String, String> dcddStructureMap = dcdd.getStructureMap();
-                String diisDate = dcddStructureMap.get("参加人员");
+                String diisDate = dcddStructureMap.get(key);
                 if (CatalogueUtil.isEmpty(diisDate)) {
                     status.set("-1");
                     break;
@@ -37,4 +38,13 @@ public class DIF0119 extends QCCatalogue {
             }
         }
     }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "5":
+                return "参加人员的姓名及专业技术职务";
+            default:
+                return "参加人员";
+        }
+    }
 }

+ 34 - 3
trans/src/main/java/com/lantone/qc/trans/yiwu/YiWuDeathCaseDiscussDocTrans.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.trans.yiwu;
 
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.lantone.qc.dbanaly.facade.yiwu.YiWuXmlUtil;
 import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
 import com.lantone.qc.pub.model.doc.DeathCaseDiscussDoc;
@@ -8,6 +9,7 @@ import com.lantone.qc.pub.model.vo.MedrecVo;
 import com.lantone.qc.pub.util.FastJsonUtils;
 import com.lantone.qc.pub.util.MapUtil;
 import com.lantone.qc.trans.ModelDocTrans;
+import com.lantone.qc.trans.comsis.CommonAnalysisUtil;
 import com.lantone.qc.trans.comsis.OrdinaryAssistant;
 
 import java.util.List;
@@ -33,7 +35,18 @@ public class YiWuDeathCaseDiscussDocTrans extends ModelDocTrans {
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
             sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
             sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+
+            Map<String, String> cutMap = Maps.newHashMap();
+            String text = sourceMap.get("讨论记录").replace(":", ":");
+            List<String> titles = Lists.newArrayList(
+                    "八、主持人总结","七:讨论意见","六、诊疗经过(重点记录病情演变,抢救经过)","五、死亡诊断",
+                    "四、死亡原因","三、 死亡时间","二、主    诉","一、入院情况");
+            List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
+            CommonAnalysisUtil.cutByTitlesNoColon(text, sortTitles, 0, cutMap);
+
+            mapJoin(sourceMap, cutMap);
             structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
+
         }
 
         MapUtil.keyAssig(structureMap, "参加讨论人员", "参加人员及职称医生", "参加人员及职称");
@@ -44,16 +57,34 @@ public class YiWuDeathCaseDiscussDocTrans extends ModelDocTrans {
         return deathCaseDiscussDoc;
     }
 
+    private void mapJoin(Map<String, String> sourceMap, Map<String, String> dailyTrans) {
+        dailyTrans.forEach((k, v) -> {
+            if (!sourceMap.containsKey(k)) {
+                sourceMap.put(k, v);
+            }
+        });
+    }
+
     private List<String> keyContrasts = Lists.newArrayList(
-            "主持人=讨论主持人",
+            "主持人姓名=讨论主持人",
             "死亡日期=死亡时间",
             "讨论意见=讨论内容",
-            "现病史- 发病情况=入院情况",
-            "医生=记录医师",
+            "记录医师=记录医师",
+            "八、主持人总结=主持人总结",
+            "七:讨论意见=讨论意见",
+            "六、诊疗经过(重点记录病情演变,抢救经过)=诊疗经过",
+            "五、死亡诊断=死亡诊断",
+            "四、死亡原因=死亡原因",
+            "三、 死亡时间=死亡时间",
+            "二、主    诉=主诉",
+            "一、入院情况=入院情况",
             "本人姓名=姓名",
             "事件日期=讨论时间",
             "当前诊断=死亡诊断",
             "病历日期=记录时间",
+            "讨论日期=讨论时间",
+            "当前科室=科别",
+            "参加讨论人员名单=参加人员",
             "讨论小结=结论"
     );
 

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/yiwu/YiWuDeathRecordDocTrans.java

@@ -50,6 +50,7 @@ public class YiWuDeathRecordDocTrans extends ModelDocTrans {
             "本人姓名=姓名",
             "现病史- 发病情况=发病情况",
             "病历日期=记录时间",
+            "一般情况=入院情况",
             "医生=记录医师"
     );
 

+ 10 - 0
trans/src/main/java/com/lantone/qc/trans/yiwu/YiwuDocTrans.java

@@ -116,6 +116,10 @@ public class YiwuDocTrans extends DocTrans {
                     YiWuNoticeOfConversationDocTrans taizhouNoticeOfConversationDocTrans = new YiWuNoticeOfConversationDocTrans();
                     inputInfo.setNoticeOfConversationDoc(taizhouNoticeOfConversationDocTrans.extract(i));
                     break;
+                case "有创操作":
+                    YiwuInvasiveOperationDocTrans invasiveOperationDocTrans=new YiwuInvasiveOperationDocTrans();
+                    inputInfo.setInvasiveOperationDocs(invasiveOperationDocTrans.extract(i));
+                    break;
                 case "住院病历信息":
                     YiWuMedicalRecordInfoDocTrans medicalRecordInfoDocTrans = new YiWuMedicalRecordInfoDocTrans();
                     inputInfo.setMedicalRecordInfoDoc(medicalRecordInfoDocTrans.extract(i));
@@ -308,6 +312,12 @@ public class YiwuDocTrans extends DocTrans {
                 );
             }
         }
+
+        if(inputInfo.getInvasiveOperationDocs()!=null){
+            if(ListUtil.isNotEmpty(inputInfo.getInvasiveOperationDocs())){
+                inputInfo.getPageData().put("有创操作",inputInfo.getInvasiveOperationDocs().stream().map(i -> i.getPageData()).collect(Collectors.toList()));
+            }
+        }
     }
 
 }

+ 62 - 0
trans/src/main/java/com/lantone/qc/trans/yiwu/YiwuInvasiveOperationDocTrans.java

@@ -0,0 +1,62 @@
+package com.lantone.qc.trans.yiwu;
+
+import com.google.common.collect.Lists;
+import com.lantone.qc.dbanaly.facade.shaoyf.ShaoyfXmlUtil;
+import com.lantone.qc.dbanaly.facade.yiwu.YiWuXmlUtil;
+import com.lantone.qc.dbanaly.util.ModuleMappingUtil;
+import com.lantone.qc.pub.model.doc.InvasiveOperationDoc;
+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.trans.comsis.CommonAnalysisUtil;
+import com.lantone.qc.trans.comsis.OrdinaryAssistant;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 有创操作记录文档生成
+ * @author: rengb
+ * @time: 2020/3/17 13:27
+ */
+public class YiwuInvasiveOperationDocTrans extends ModelDocTrans {
+    private String modeId = "59";
+
+    @Override
+    public List<InvasiveOperationDoc> extract(MedrecVo medrecVo) {
+        List<InvasiveOperationDoc> retList = Lists.newArrayList();
+        List<Map<String, Object>> contentMaps = (List) medrecVo.getContent().get("content");
+        contentMaps.forEach(contentMap -> {
+            retList.add(getInvasiveOperationDoc(contentMap));
+        });
+        return retList;
+    }
+
+    private InvasiveOperationDoc getInvasiveOperationDoc(Map<String, Object> contentMap) {
+        String content = contentMap.get("xmlText").toString();
+        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 = YiWuXmlUtil.xmlToMap(content);
+            List<String> titles = Lists.newArrayList("病历日期");
+            String text = sourceMap.get("原始文本");
+            List<String> sortTitles = CommonAnalysisUtil.sortTitles(titles, text);
+            CommonAnalysisUtil.cutByTitles(text, sortTitles, 0, sourceMap);
+            sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
+            sourceMap.put("mode_id=" + contentMap.get("modeId").toString(), "");
+            sourceMap.put("rec_title=" + contentMap.get("recTitle").toString(), "");
+            structureMap = OrdinaryAssistant.mapKeyContrast(sourceMap, keyContrasts, modeId);
+        }
+        InvasiveOperationDoc invasiveOperationDoc = new InvasiveOperationDoc();
+        invasiveOperationDoc.setStructureMap(structureMap);
+        invasiveOperationDoc.setPageData((Map) structureMap);
+
+        return invasiveOperationDoc;
+    }
+
+    private List<String> keyContrasts = Lists.newArrayList(
+            "病程时间=病历日期",
+            "病程标题=操作名称",
+            "病程内容=操作步骤");
+}