|
@@ -58,10 +58,9 @@ public class THR02985 extends QCCatalogue {
|
|
.map(DoctorAdviceDoc::getStructureMap)
|
|
.map(DoctorAdviceDoc::getStructureMap)
|
|
.filter(x -> StringUtil.isNotBlank(x.get("药品类型")) && x.get("药品类型").contains("抗生素"))
|
|
.filter(x -> StringUtil.isNotBlank(x.get("药品类型")) && x.get("药品类型").contains("抗生素"))
|
|
.filter(x -> StringUtil.isNotBlank(x.get("医嘱状态判别")) && !x.get("医嘱状态判别").contains("已停止"))
|
|
.filter(x -> StringUtil.isNotBlank(x.get("医嘱状态判别")) && !x.get("医嘱状态判别").contains("已停止"))
|
|
- .filter(x -> StringUtil.isNotBlank(x.get("给药方式")) && x.get("给药方式").contains("静脉滴注"))
|
|
|
|
- .filter(x -> StringUtil.isNotBlank(x.get("医嘱频率")) && !x.get("医嘱频率").equals("ONCE"))
|
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
+ docAdvStruct.removeIf(x -> StringUtil.isNotBlank(x.get("给药方式")) && !filterKey.contains(x.get("给药方式")));
|
|
//记录同一天内是否开过多次同一抗生素
|
|
//记录同一天内是否开过多次同一抗生素
|
|
Map<String, Map<Date, Integer>> antibioticDateTimes = Maps.newHashMap();
|
|
Map<String, Map<Date, Integer>> antibioticDateTimes = Maps.newHashMap();
|
|
//记录同一抗生素同一天内是否开过多次,用于医嘱中需要处理的抗生素过滤(一天内同一抗生素开过多次的抗生素直接过滤)
|
|
//记录同一抗生素同一天内是否开过多次,用于医嘱中需要处理的抗生素过滤(一天内同一抗生素开过多次的抗生素直接过滤)
|
|
@@ -72,7 +71,7 @@ public class THR02985 extends QCCatalogue {
|
|
String drugName = adviceDoc.get("医嘱项目名称");
|
|
String drugName = adviceDoc.get("医嘱项目名称");
|
|
String startDateStr = adviceDoc.get("医嘱开始时间");
|
|
String startDateStr = adviceDoc.get("医嘱开始时间");
|
|
if (StringUtil.isNotBlank(drugName)) {
|
|
if (StringUtil.isNotBlank(drugName)) {
|
|
- // startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
|
|
|
|
|
|
+// startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
|
|
startDate = StringUtil.parseDateTime(startDateStr);
|
|
startDate = StringUtil.parseDateTime(startDateStr);
|
|
if (antibioticDateTimes.get(drugName).get(startDate) > 0) {
|
|
if (antibioticDateTimes.get(drugName).get(startDate) > 0) {
|
|
continue; //一天内同一抗生素开过多次的抗生素直接过滤
|
|
continue; //一天内同一抗生素开过多次的抗生素直接过滤
|
|
@@ -173,7 +172,7 @@ public class THR02985 extends QCCatalogue {
|
|
if (drugs.contains(" ")) {
|
|
if (drugs.contains(" ")) {
|
|
drugs = drugs.split(" ")[0];
|
|
drugs = drugs.split(" ")[0];
|
|
}
|
|
}
|
|
- // drugs = removeBracket(drugs).replaceAll("[^\u4e00-\u9fa5针]", "");
|
|
|
|
|
|
+// drugs = removeBracket(drugs).replaceAll("[^\u4e00-\u9fa5]", "");
|
|
Set<String> splitDrugs = CatalogueUtil.getRegexWords(drugs, "[((\\[][^\\[\\]()()]+[\\]))]")
|
|
Set<String> splitDrugs = CatalogueUtil.getRegexWords(drugs, "[((\\[][^\\[\\]()()]+[\\]))]")
|
|
.stream().filter(x -> !x.equals("合资") && !x.equals("进口") && !x.equals("国产")).collect(Collectors.toSet());
|
|
.stream().filter(x -> !x.equals("合资") && !x.equals("进口") && !x.equals("国产")).collect(Collectors.toSet());
|
|
/**********************************************先文本匹配************************************************/
|
|
/**********************************************先文本匹配************************************************/
|
|
@@ -210,6 +209,7 @@ public class THR02985 extends QCCatalogue {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
if (StringUtil.isNotBlank(missDrug) && !modelFind && CatalogueUtil.compareTime(doctorAdviceDate, new Date(), 48 * 60L)) {
|
|
if (StringUtil.isNotBlank(missDrug) && !modelFind && CatalogueUtil.compareTime(doctorAdviceDate, new Date(), 48 * 60L)) {
|
|
infoAppend(sb, drugs, DateUtil.formatDateTime(doctorAdviceDate));
|
|
infoAppend(sb, drugs, DateUtil.formatDateTime(doctorAdviceDate));
|
|
data.put(doctorAdviceDate, splitDrugs.toString().replaceAll("[\\[\\]]", ""));
|
|
data.put(doctorAdviceDate, splitDrugs.toString().replaceAll("[\\[\\]]", ""));
|
|
@@ -236,7 +236,7 @@ public class THR02985 extends QCCatalogue {
|
|
for (Map<String, String> structMap : docAdvStruct) {
|
|
for (Map<String, String> structMap : docAdvStruct) {
|
|
drugName = structMap.get("医嘱项目名称");
|
|
drugName = structMap.get("医嘱项目名称");
|
|
startDateStr = structMap.get("医嘱开始时间");
|
|
startDateStr = structMap.get("医嘱开始时间");
|
|
- // startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
|
|
|
|
|
|
+// startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
|
|
startDate = StringUtil.parseDateTime(startDateStr);
|
|
startDate = StringUtil.parseDateTime(startDateStr);
|
|
if (antibioticDateTimes.containsKey(drugName)) {
|
|
if (antibioticDateTimes.containsKey(drugName)) {
|
|
Map<Date, Integer> map = antibioticDateTimes.get(drugName);
|
|
Map<Date, Integer> map = antibioticDateTimes.get(drugName);
|
|
@@ -271,10 +271,18 @@ public class THR02985 extends QCCatalogue {
|
|
}
|
|
}
|
|
|
|
|
|
private void getInfo(Map<String, List<Drug>> info, String dateKey, List<Drug> drugs) {
|
|
private void getInfo(Map<String, List<Drug>> info, String dateKey, List<Drug> drugs) {
|
|
|
|
+ List<Drug> tempDrugs = new ArrayList<>();
|
|
|
|
+ if (null != drugs && drugs.size() > 0) {
|
|
|
|
+ for (Drug drug : drugs) {
|
|
|
|
+ if (null != drug.getConsumption() && !drug.getConsumption().getName().contains("mg/Kg")) {
|
|
|
|
+ tempDrugs.add(drug);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (info.containsKey(dateKey)) {
|
|
if (info.containsKey(dateKey)) {
|
|
- info.get(dateKey).addAll(drugs);
|
|
|
|
|
|
+ info.get(dateKey).addAll(tempDrugs);
|
|
} else {
|
|
} else {
|
|
- info.put(dateKey, drugs);
|
|
|
|
|
|
+ info.put(dateKey, tempDrugs);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -389,6 +397,12 @@ public class THR02985 extends QCCatalogue {
|
|
sb.append(drugKey).append("(").append(date).append(")").append("_");
|
|
sb.append(drugKey).append("(").append(date).append(")").append("_");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private static final List<String> filterKey = Lists.newArrayList("ACF", "ID", "IG", "IM", "IP", "IV",
|
|
|
|
+ "关节腔注射", "宫颈注射", "皮下注射", "皮下注射(儿童)", "皮下注射(免费)", "皮下注射(成人)", "皮内", "皮内注射",
|
|
|
|
+ "结膜下注射", "肌注", "肌肉注射(儿童)", "肌肉注射(公卫专用)", "肌肉注射(成人)", "胸腔注射", "腹腔内注射", "腹腔注射",
|
|
|
|
+ "静滴(儿童)", "静滴(成人)", "静脉注射", "静脉注射(儿童)", "静脉注射(免费)", "静脉注射(成人)", "静脉注射(泵)",
|
|
|
|
+ "静脉滴注", "静脉滴注(泵)", "鞘内注射");
|
|
|
|
+
|
|
private static final String[] KSS = {
|
|
private static final String[] KSS = {
|
|
"万古霉素",
|
|
"万古霉素",
|
|
"两性霉素B",
|
|
"两性霉素B",
|