|
@@ -9,6 +9,8 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
|
|
/**
|
|
|
* @Description:
|
|
@@ -37,20 +39,22 @@ public class YwzxyyBeHospitalizedXmlAnalysis implements YwzxyyXmlAnalysis {
|
|
|
private Map<String, String> zybl(String xml) {
|
|
|
Map<String, String> structureMap = Maps.newHashMap();
|
|
|
try {
|
|
|
- xml = xml.replace("(<慢性疾病>)[\\s\\S]*(</既往病史>)", "</既往病史>")
|
|
|
- .replace("(<传染病名称>)[\\s\\S]*(</传染病史>)", "</传染病史>")
|
|
|
- .replace("(<经量>)[\\s\\S]*(</月经史>)", "</月经史>")
|
|
|
- .replace("(<近亲结婚否>)[\\s\\S]*(</婚姻情况>)", "</婚姻情况>")
|
|
|
- .replace("(<足月产次数>)[\\s\\S]*(</生育情况>)", "</生育情况>")
|
|
|
- .replace("(<收缩压值>)[\\s\\S]*(</血压>)", "</血压>")
|
|
|
- .replace("(<反射程度>)[\\s\\S]*(</深反射>)", "</深反射> ")
|
|
|
- .replace("(<肌张力>)[\\s\\S]*(<肌张力>)", "<肌张力><肌张力>").replace("(</肌张力>)[\\s\\S]*(</肌张力>)", "</肌张力></肌张力> ")
|
|
|
- .replace("(<肌力>)[\\s\\S]*(<肌力>)", "<肌力><肌力>").replace("(</肌力>)[\\s\\S]*(</肌力>)", "</肌力></肌力> ");
|
|
|
+ xml = xml.replaceAll("(<慢性疾病>)[\\s\\S]*(</既往病史>)", "</既往病史>")
|
|
|
+ .replaceAll("(<传染病名称>)[\\s\\S]*(</传染病史>)", "</传染病史>")
|
|
|
+ .replaceAll("(<经量>)[\\s\\S]*(</月经史>)", "</月经史>")
|
|
|
+ .replaceAll("(<近亲结婚否>)[\\s\\S]*(</婚姻情况>)", "</婚姻情况>")
|
|
|
+ .replaceAll("(<足月产次数>)[\\s\\S]*(</生育情况>)", "</生育情况>")
|
|
|
+ .replaceAll("(<收缩压值>)[\\s\\S]*(</血压>)", "</血压>")
|
|
|
+ .replaceAll("(<反射程度>)[\\s\\S]*(</深反射>)", "</深反射> ")
|
|
|
+ .replaceAll("(<肌张力>)[^(<肌张力>)]*(<肌张力>)", "<肌张力><肌张力>").replaceAll("(</肌张力>)[^(</肌张力>)]*(</肌张力>)", "</肌张力></肌张力> ")
|
|
|
+ .replaceAll("(<肌力>)[^(<肌力>)]*(<肌力>)", "<肌力><肌力>").replaceAll("(</肌力>)[^(</肌力>)]*(</肌力>)", "</肌力></肌力> ")
|
|
|
+ .replaceAll("(</记录医师>)[\\s\\S]*(<记录医师签名时间>)", "</记录医师>记录医师签名时间:<记录医师签名时间>");
|
|
|
+ xml = matRegx(xml, "(</专科检查>检查医师)[\\s\\S]*(<病历记录时间>)", "<病历记录时间>", "记录医师签名时间:<病历记录时间>");
|
|
|
String text = YwzxyyXmlUtil.xml2Txt(xml);
|
|
|
List<String> titles = CommonAnalysisUtil.sortTitlesNoColon(
|
|
|
Lists.newArrayList("姓 名", "姓 名", "性 别", "年 龄", "民 族", "婚 姻", "出 生 地",
|
|
|
"职 业", "联系地址", "入院时间", "病史陈述者", "记录日期", "主 诉", "现 病 史", "既 往 史", "个 人 史",
|
|
|
- "月 经 史", "婚 育 史", "家 族 史", "辅助检查", "营养风险筛查", "初步诊断", "修正诊断", "补充诊断",
|
|
|
+ "月 经 史", "婚 育 史", "家 族 史", "辅助检查", "营养风险筛查", "初步诊断", "修正诊断", "补充诊断", "记录医师签名时间",
|
|
|
"医师签名", "记录时间", "体格检查(一)", "体格检查表(二)补 充 及 专 科 情 况", "体格检查", "检查医师"),
|
|
|
text
|
|
|
);
|
|
@@ -74,4 +78,20 @@ public class YwzxyyBeHospitalizedXmlAnalysis implements YwzxyyXmlAnalysis {
|
|
|
return structureMap;
|
|
|
}
|
|
|
|
|
|
+ private String matRegx(String source, String regex1, String regex2, String val) {
|
|
|
+ if (StringUtil.isNotBlank(source) && StringUtil.isNotBlank(regex1)
|
|
|
+ && StringUtil.isNotBlank(regex2) && StringUtil.isNotBlank(val)) {
|
|
|
+ Pattern pattern = Pattern.compile(regex1);
|
|
|
+ Matcher matcher = pattern.matcher(source);
|
|
|
+ if (matcher.find()) {
|
|
|
+ String sce1 = matcher.group();
|
|
|
+ if (!sce1.contains(val)) {
|
|
|
+ String sce2 = sce1.replaceAll(regex2, val);
|
|
|
+ source = source.replaceAll(sce1, sce2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return source;
|
|
|
+ }
|
|
|
+
|
|
|
}
|