@@ -26,6 +26,10 @@ public class BEH0003 extends QCCatalogue {
return;
}
if (StringUtil.isNotBlank(chiefText)) {
+ if(chiefText.contains("建议")){ //临时处理,需修改解析代码 004490329刘恩泽
+ status.set("0");
+ return;
+ }
int chiefTextLength = chiefText.replaceAll("[\\p{Punct}\\pP]", "").length();
if (chiefTextLength <= 20) {
status.set("0");
@@ -34,6 +34,10 @@ public class BEH0008 extends QCCatalogue {
+ if (chiefText.contains("伴")) {
List<Clinical> clinicals = chiefLabel.getClinicals();
if (clinicals != null && clinicals.size() <= 3) {
@@ -21,30 +21,36 @@ public class BEH0059 extends QCCatalogue {
@Override
protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
if (inputInfo.getBeHospitalizedDoc() != null) {
- if (inputInfo.getBeHospitalizedDoc().getStructureMap() == null
- || inputInfo.getBeHospitalizedDoc().getStructureMap().get("性别") == null
- || inputInfo.getBeHospitalizedDoc().getStructureMap().get("性别").contains("男")) {
+ Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+ String s = structureMap.get("性别");
+ if (StringUtil.isNotBlank(s) && s.contains("男")) {
status.set("0"); //如果性别是男,就不报错
- } else {
- String concatMenstrualText = concatMenstrualText(inputInfo);
- if (StringUtil.isNotBlank(concatMenstrualText)) {
- status.set("0");
- return;
- }
- MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
- if (menstrualLabel == null) {
- String menstrualText = StringUtil.removeBlank(menstrualLabel.getText()).replaceAll("[月经史|:|:|null]", "");
- if (StringUtil.isBlank(menstrualText)) {
- boolean containChinese = CatalogueUtil.isContainChinese(menstrualText);
- if (containChinese) {
- status.set("0"); //如果性别是女,不为空就不报错
+ String menstrualStr = structureMap.get("月经史");
+ if (StringUtil.isNotBlank(menstrualStr)) {
+
+ String concatMenstrualText = concatMenstrualText(inputInfo);
+ if (StringUtil.isNotBlank(concatMenstrualText)) {
+ MenstrualLabel menstrualLabel = inputInfo.getBeHospitalizedDoc().getMenstrualLabel();
+ if (menstrualLabel == null) {
+ String menstrualText = StringUtil.removeBlank(menstrualLabel.getText()).replaceAll("[月经史|:|:|null]", "");
+ if (StringUtil.isBlank(menstrualText)) {
+ boolean containChinese = CatalogueUtil.isContainChinese(menstrualText);
+ if (containChinese) {
+ status.set("0"); //如果性别是女,不为空就不报错
- }else {
+ } else {
@@ -35,7 +35,7 @@ public class BEH0727 extends QCCatalogue {
- String regex = "分娩方式:([^,。]+)";
+ String regex = "分娩方式:([^,。. ]+)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(birthHistory);
@@ -28,7 +28,7 @@ import java.util.Map;
@Component
public class BEH0014 extends QCCatalogue {
private List<String> containList = Arrays.asList("体检", "发现", "检查", "因", "确诊", "诊断", "复查", "术后"
- , "药物", "误服", "查", "撞", "伤", "月经", "暴力", "超", "术");
+ , "药物", "误服", "查", "撞", "伤", "月经", "暴力", "超", "术","接触");
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
@@ -42,6 +42,10 @@ public class BEH0048 extends QCCatalogue {
+ if (personalLabel.getText().length() <=20){
Contact contact = personalLabel.getContact();
if (contact != null && StringUtil.isNotBlank(contact.getName())) {
@@ -34,7 +34,7 @@ public class BEH0050 extends QCCatalogue {
if (StringUtil.isNotBlank(personalText) && (personalText.contains("无吸烟史") || personalText.contains("否认吸烟史"))
- || personalText.contains("不吸烟")) {
+ || personalText.contains("不吸烟")|| personalText.contains("根")) {
@@ -45,7 +45,7 @@ public class BEH0053 extends QCCatalogue {
String maritalText = maritalLabel.getText();
- if ("未婚".equals(marry) || maritalText.contains("未婚") || maritalText.contains("详见原病历")
+ if ((StringUtil.isNotBlank(marry) && marry.contains("未婚")) || maritalText.contains("未婚")|| maritalText.contains("未结婚") || maritalText.contains("详见原病历")
|| maritalText.contains("离婚") || maritalText.contains("离异") || maritalText.contains("适龄结婚")) {
@@ -64,7 +64,7 @@ public class BEH0058 extends QCCatalogue {
if (StringUtil.isNotBlank(maritalText)) {
- List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女"
+ List<String> words = Lists.newArrayList("未婚", "未育", "未孕", "未婚育", "未生育", "未生", "0子0女"
, "0-0-0-0", "详见原病历", "0-0-0-0");
for (String word : words) {
if (maritalText.contains(word)) {
@@ -38,13 +38,17 @@ public class BEH02902 extends QCCatalogue {
|| pacsText.contains("暂无")|| pacsText.contains("院")
|| pacsText.contains("病理")
|| pacsText.contains("科") || pacsText.contains("公司")
- || pacsText.contains("社区卫生服务中心"))) {
+ || pacsText.contains("社区卫生服务中心")
+ || pacsText.contains("门诊部")
+ || pacsText.contains("综合门诊部"))) {
if (StringUtil.isNotBlank(pacsText1) && (pacsText1.contains("暂缺")
|| pacsText1.contains("暂无") || pacsText1.contains("院")
|| pacsText1.contains("科")|| pacsText1.contains("公司")
+ || pacsText1.contains("综合门诊部")
+ || pacsText1.contains("门诊部")
|| pacsText.contains("社区卫生服务中心"))) {
@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.InputInfo;
import com.lantone.qc.pub.model.OutputInfo;
import com.lantone.qc.pub.model.entity.Family;
import com.lantone.qc.pub.model.label.MaritalLabel;
+import com.lantone.qc.pub.model.label.PersonalLabel;
import com.lantone.qc.pub.util.ListUtil;
import com.lantone.qc.pub.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
@@ -108,7 +109,7 @@ public class BEH0375 extends QCCatalogue {
- if(maritalText1!=null && maritalText1.contains("配偶健康状况")){
+ if((maritalText1!=null && maritalText1.contains("配偶健康状况")) || (maritalText1!=null && maritalText1.contains("健康状况"))){
@@ -29,6 +29,7 @@ public class BEH0376 extends QCCatalogue {
if (inputInfo.getBeHospitalizedDoc() == null) {
@@ -37,6 +38,10 @@ public class BEH0376 extends QCCatalogue {
MaritalLabel maritalLabel = beHospitalizedDoc.getMaritalLabel();
//台州市结构化的
Map<String, String> structureMap_beh = beHospitalizedDoc.getStructureMap();
+ if ("未婚".equals(structureMap_beh.get("婚姻状况"))){
if (StringUtils.isNotEmpty(structureMap_beh.get("子女健康状况"))) {
@@ -66,7 +71,7 @@ public class BEH0376 extends QCCatalogue {
if (!findChild) {
- List<String> words = Lists.newArrayList("未婚", "未育", "未婚育", "未生育", "未生", "0子0女", "详见原病历", "无子女");
+ List<String> words = Lists.newArrayList("未婚", "未育","未孕", "未婚育", "未生育", "未生", "0子0女", "详见原病历", "无子女");
@@ -56,7 +56,7 @@ public class BEH0397 extends QCCatalogue {
if ((StringUtil.isNotBlank(familyText) && (familyText.contains("父母") ||
familyText.contains("详见原病历") || familyText.contains("双亲") ||
- familyText.contains("已故") || familyText.contains("父亲") ||familyText.contains("母亲")))
+ familyText.contains("已故") || familyText.contains("父亲") ||familyText.contains("母亲")||familyText.contains("均")))
|| (StringUtil.isNotBlank(maritalText) && (maritalText.contains("父母") ||
maritalText.contains("详见原病历") || familyText.contains("双亲") || familyText.contains("已故")
|| familyText.contains("父亲") ||familyText.contains("母亲")))) {
@@ -33,7 +33,7 @@ public class BEH0441 extends QCCatalogue {
List<String> words = Lists.newArrayList("胃纳", "食纳", "食欲", "未纳", "纳眠", "饮食", "睡眠"
- , "禁食", "未食", "鼻饲", "饮", "未进食", "未开奶", "吃奶","已开奶");
+ , "禁食", "未食", "鼻饲", "饮", "未进食", "未开奶", "吃奶","已开奶","配方奶","喂");
String presentText = presentLabel.getText();
if (StringUtil.isNotBlank(presentText)) {
@@ -36,7 +36,7 @@ public class BEH0445 extends QCCatalogue {
- List<String> words = Lists.newArrayList("睡眠", "未眠", "未睡", "未入眠", "入睡", "纳眠", "夜眠", "镇静", "未开奶","吃奶","已开奶");
+ List<String> words = Lists.newArrayList("睡", "未眠", "未睡", "未入眠", "入睡", "纳眠", "夜眠", "镇静", "未开奶","吃奶","已开奶","肠套");
if (presentText.contains(word)) {
@@ -11,7 +11,7 @@ import java.util.Map;
/**
* @ClassName : FIRP0203
- * @Description : 出生地没有填写
+ * @Description : 出生地未填写
* @Author : 楼辉荣
* @Date: 2020-03-06 17:28ss
*/
@@ -22,6 +22,10 @@ public class FIRP0203 extends QCCatalogue {
if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
String dischargeTime = firstpageStructureMap.get(Content.birth_address);
+ // 外国人不进行规则判断
+ if (!firstpageStructureMap.get(Content.nationality).equals("中国")){
if(CatalogueUtil.isEmpty(dischargeTime)){
status.set("-1");
Map<String, Object> structureExtMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
@@ -25,6 +25,9 @@ public class THR0123 extends QCCatalogue {
Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
String admisDate = beHospitalStructureMap.get(Content.admisDate);
String recordTime = beHospitalStructureMap.get("记录日期");
+ if(StringUtil.isBlank(recordTime)){
+ recordTime = beHospitalStructureMap.get("记录时间");
if (CatalogueUtil.isEmpty(admisDate) || CatalogueUtil.isEmpty(recordTime)) {
@@ -12,7 +12,7 @@ spring:
charset: UTF-8
enabled: true
profiles:
- active: test
+ active: local
qc:
hospital_id: 1,2,3,4,5,6,7,8,10,13,15,20,34,36
@@ -123,9 +123,11 @@ public class YiwuDocTrans extends DocTrans {
case "住院病历信息":
YiWuMedicalRecordInfoDocTrans medicalRecordInfoDocTrans = new YiWuMedicalRecordInfoDocTrans();
inputInfo.setMedicalRecordInfoDoc(medicalRecordInfoDocTrans.extract(i));
+ break;
case "门诊":
YiWuOutDepDocTrans taiZhouOutDepDocTrans = new YiWuOutDepDocTrans();
inputInfo.setBeHospitalizedDoc(taiZhouOutDepDocTrans.extract(i));
default:
break;