Преглед на файлове

Merge remote-tracking branch 'origin/beilun/dev' into beilun/dev

fangqw преди 4 години
родител
ревизия
89f5234146

+ 8 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/firstpagerecord/FIRP0178.java

@@ -38,13 +38,14 @@ public class FIRP0178 extends QCCatalogue {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getLeaveHospitalDoc() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
+            String opcNum = (String) firstpageStructureMap.get("门急诊诊断编码");
             if (ListUtil.isEmpty(dischargeDiag)) {
                 return;
             }
             /* 病案首页出院小结诊断 除去主诊断*/
-            List<String> firstpageLeaveDiags = getFirstPageDiag(dischargeDiag);
+            List<String> firstpageLeaveDiags = getFirstPageDiag(dischargeDiag, opcNum);
             if (ListUtil.isEmpty(firstpageLeaveDiags)) {
-                return ;
+                return;
             }
 
             DiagLabel leaveDiagLabel = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel();
@@ -78,10 +79,13 @@ public class FIRP0178 extends QCCatalogue {
         }
     }
 
-    private List<String> getFirstPageDiag(List<Map<String, String>> dischargeDiag) {
+    private List<String> getFirstPageDiag(List<Map<String, String>> dischargeDiag, String opcNum) {
         List<String> firstpageDiag = new ArrayList<>();
         for (int i = 0; i < dischargeDiag.size(); i++) {
-            if ("门诊诊断".equals(dischargeDiag.get(i).get("诊断类别"))) {
+            if ("门急诊诊断".equals(dischargeDiag.get(i).get("诊断类别"))) {
+                continue;
+            }
+            if (StringUtil.isNotBlank(opcNum) && opcNum.contains(dischargeDiag.get(i).get("诊断编码"))) {
                 continue;
             }
             String diagnoseName = dischargeDiag.get(i).get(Content.diagnoseName);

+ 11 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR03077.java

@@ -301,6 +301,17 @@ public class THR03077 extends QCCatalogue {
                 if (keyword.contains("继续") || keyword.contains("停")) {
                     continue;
                 }
+
+                String behindWord = content.substring(position, Math.min(position + 15, content.toCharArray().length));
+                String lastBehindWord = content.substring(lastPosition, Math.min(lastPosition + 10, content.toCharArray().length));
+                if (behindWord != lastBehindWord) {
+                    if (lastBehindWord.contains("阴性")) {
+                        continue;
+                    }
+                }
+                if (behindWord.contains("阴性")) {
+                    continue;
+                }
             }
             wardDrug = removeBracket(wardDrug);
             String drugStandardWord = similarityUtil.getDrugStandardWord(wardDrug);

+ 11 - 2
trans/src/main/java/com/lantone/qc/trans/yiwu/YiWuBeHospitalizedDocTrans.java

@@ -50,7 +50,8 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
         } else {
             Map<String, String> sourceMap = YiWuXmlUtil.xmlToMap(content);
             sourceMap.put("mode_id", ModuleMappingUtil.getDeptModuleId(modeId));
-            List<String> titles = Lists.newArrayList("婚    姻", "婚姻状况", "住      址", "供 史 者", "性      别", "婚  姻", "民  族", "民    族", "个人史", "妇科检查", "产科检查", "实验室", "初步诊断", "修正诊断", "补充诊断", "医师签名", "日    期", "诊断和诊断修正");
+            List<String> titles = Lists.newArrayList("婚    姻", "婚姻状况", "住      址", "供 史 者", "性      别", "婚  姻", "民  族", "民    族", "个人史", "妇科检查", "产科检查",
+                    "实验室", "初步诊断", "修正诊断", "医生签名","补充诊断", "医师签名", "日    期", "诊断和诊断修正");
             String text = sourceMap.get("原始文本");
             List<String> sortTitles = CommonAnalysisUtil.sortTitlesNoColon(titles, text);
             CommonAnalysisUtil.cutByTitlesNoColon(text, sortTitles, 0, sourceMap);
@@ -112,9 +113,16 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
             }
             if (sourceMap.containsKey("医师签名")) {
                 String value = sourceMap.get("医师签名").replaceAll("日期", "").
-                        replaceAll(":", "").replaceAll("\\d", "").replaceAll("--", "");
+                        replaceAll(":", "").replaceAll("医师签名", "").
+                        replaceAll("\\d", "").replaceAll("--", "");
                 sourceMap.put("医师签名", value);
             }
+            if (sourceMap.containsKey("医生签名")) {
+                String value = sourceMap.get("医生签名").replaceAll("日期", "").
+                        replaceAll(":", "").replaceAll("医生签名", "").replaceAll("签名时间", "").
+                        replaceAll("\\d", "").replaceAll("--", "");
+                sourceMap.put("医生签名", value);
+            }
             //产科入院记录个人史处理
             if (sourceMap.containsKey("个人史")) {
                 String value = sourceMap.get("个人史").split("月经史")[0];
@@ -204,6 +212,7 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
             "患者工作单位名称=户口地址",
             "出生日期时间=出生日期",
             "医师签名=初步诊断医师签名",
+            "医生签名=初步诊断医师签名",
             "签字日期=初步诊断日期",
             "供史者=病史陈述者",
             "无痛人流主诉=主诉",