|
@@ -3,9 +3,11 @@ package com.lantone.qc.trans.changx;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.lantone.qc.pub.model.doc.DeathCaseDiscussDoc;
|
|
|
import com.lantone.qc.pub.model.vo.MedrecVo;
|
|
|
-import com.lantone.qc.pub.util.MapUtil;
|
|
|
+import com.lantone.qc.pub.util.StringUtil;
|
|
|
import com.lantone.qc.trans.ModelDocTrans;
|
|
|
+import com.lantone.qc.trans.changx.util.CxXmlUtil;
|
|
|
import com.lantone.qc.trans.comsis.ModelDocGenerate;
|
|
|
+import com.lantone.qc.trans.comsis.OrdinaryAssistant;
|
|
|
import com.lantone.qc.trans.comsis.Preproc;
|
|
|
|
|
|
import java.util.List;
|
|
@@ -21,70 +23,49 @@ public class ChangxDeathCaseDiscussDocTrans extends ModelDocTrans {
|
|
|
@Override
|
|
|
public DeathCaseDiscussDoc extract(MedrecVo medrecVo) {
|
|
|
String content = ((List<String>) medrecVo.getContent().get("content")).get(0);
|
|
|
+ Map<String, String> xmlNodeValueMap = CxXmlUtil.firstLevelNodeValue("//DocObjContent//Region", content);
|
|
|
+ Map<String, String> structureMap = OrdinaryAssistant.mapKeyContrast(xmlNodeValueMap, keyContrasts);
|
|
|
|
|
|
- Map<String, String> pageData = Preproc.extract_doc_pub(true, pageDataTitles, content);
|
|
|
- pageData.put("病程记录内容",
|
|
|
- pageData.get("病程记录内容")
|
|
|
- .replace(pageData.get("病程记录时间"), "")
|
|
|
- .replace(pageData.get("病程记录名称"), "")
|
|
|
- );
|
|
|
+ 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);
|
|
|
|
|
|
- List<String> targetTitles = Lists.newArrayList();
|
|
|
- sourceTitles.forEach(sourceTitle -> {
|
|
|
- String targetTitle = "";
|
|
|
- for (int index = 0; index < sourceTitle.length(); index++) {
|
|
|
- if (index == sourceTitle.length() - 1) {
|
|
|
- targetTitle += sourceTitle.substring(index, index + 1);
|
|
|
- } else {
|
|
|
- targetTitle += sourceTitle.substring(index, index + 1) + "[\\s\\p{Zs}]*";
|
|
|
- }
|
|
|
- }
|
|
|
- targetTitles.add(targetTitle);
|
|
|
- });
|
|
|
-
|
|
|
- Map<String, String> sourceMap = Preproc.extract_doc_pub(true, targetTitles, content);
|
|
|
- sourceMap.put("记录时间", sourceMap.get("病程记录时间"));
|
|
|
- MapUtil.keyAssig(sourceMap, "参加讨论人员", "参加讨论人员(包括职称及姓名)");
|
|
|
- MapUtil.keyAssig(sourceMap, "讨论主持人", "主持人");
|
|
|
- MapUtil.keyAssig(sourceMap, "死亡时间", "出院时间");
|
|
|
- MapUtil.keyAssig(sourceMap, "结论", "总结");
|
|
|
- MapUtil.keyAssig(sourceMap, "死亡原因", "结论");
|
|
|
-
|
|
|
- DeathCaseDiscussDoc deathCaseDiscussDoc = ModelDocGenerate.deathCaseDiscussDocGen(sourceMap);
|
|
|
- deathCaseDiscussDoc.setText(content);
|
|
|
- deathCaseDiscussDoc.setPageData((Map) pageData);
|
|
|
+ DeathCaseDiscussDoc deathCaseDiscussDoc = ModelDocGenerate.deathCaseDiscussDocGen(cutWordMap);
|
|
|
+ deathCaseDiscussDoc.setText(text);
|
|
|
+ deathCaseDiscussDoc.setPageData((Map) xmlNodeValueMap);
|
|
|
|
|
|
return deathCaseDiscussDoc;
|
|
|
}
|
|
|
|
|
|
- private List<String> pageDataTitles = Lists.newArrayList(
|
|
|
- "病程记录时间",
|
|
|
- "病程记录名称",
|
|
|
- "病程记录内容",
|
|
|
- "记录医师"
|
|
|
- );
|
|
|
-
|
|
|
private List<String> sourceTitles = Lists.newArrayList(
|
|
|
- "病程记录时间",
|
|
|
- "病程记录名称",
|
|
|
- "病程记录内容",
|
|
|
"记录时间",
|
|
|
"记录医师",
|
|
|
"入院时间",
|
|
|
- "入院诊断",
|
|
|
"死亡时间",
|
|
|
"出院时间",
|
|
|
+ "入院诊断",
|
|
|
"死亡诊断",
|
|
|
"讨论时间",
|
|
|
"讨论地点",
|
|
|
- "参加讨论人员(包括职称及姓名)",
|
|
|
"参加讨论人员",
|
|
|
- "主持人",
|
|
|
"讨论主持人",
|
|
|
"讨论内容",
|
|
|
"死亡原因",
|
|
|
- "结论",
|
|
|
- "总结"
|
|
|
+ "结论"
|
|
|
+ );
|
|
|
+
|
|
|
+ private List<String> keyContrasts = Lists.newArrayList(
|
|
|
+ "记录日期=记录时间",
|
|
|
+ "讨论时间=",
|
|
|
+ "主持人=讨论主持人",
|
|
|
+ "参加人员姓名=参加讨论人员",
|
|
|
+ "讨论内容=",
|
|
|
+ "主持人小结++++主持人小结意见=结论",
|
|
|
+ "签名++++=记录医师",
|
|
|
+ "签名时间="
|
|
|
);
|
|
|
|
|
|
}
|