Bladeren bron

宁海妇保医院问题修改

wangsy 4 jaren geleden
bovenliggende
commit
f4a93ef7a2

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaifuyao/behospitalized/BEH0041.java

@@ -23,6 +23,14 @@ public class BEH0041 extends QCCatalogue {
             status.set("0");
             return;
         }
+        //宁还妇幼新生儿不判断此规则
+        if(inputInfo.getFirstPageRecordDoc() != null){
+            Map<String, String> firstPageRecordStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            if(StringUtil.isNotBlank(firstPageRecordStructureMap.get("新生儿出生天数"))){
+                return;
+            }
+        }
+
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         //以台州为例,个人史细分很多结构化信息,取其一
         if (StringUtils.isNotEmpty(structureMap.get("出生、生长史"))

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaifuyao/behospitalized/BEH0042.java

@@ -27,6 +27,14 @@ public class BEH0042 extends QCCatalogue {
             status.set("0");
             return;
         }
+        //宁还妇幼新生儿不判断此规则
+        if(inputInfo.getFirstPageRecordDoc() != null){
+            Map<String, String> firstPageRecordStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            if(StringUtil.isNotBlank(firstPageRecordStructureMap.get("新生儿出生天数"))){
+                return;
+            }
+        }
+
         Map<String, String> structureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         if (StringUtils.isNotEmpty(structureMap.get("出生地"))) {
             status.set("0");

+ 7 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaifuyao/behospitalized/BEH0052.java

@@ -22,6 +22,13 @@ public class BEH0052 extends QCCatalogue {
             status.set("0");
             return;
         }
+        //宁还妇幼新生儿不判断此规则
+        if(inputInfo.getFirstPageRecordDoc() != null){
+            Map<String, String> firstPageRecordStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            if(StringUtil.isNotBlank(firstPageRecordStructureMap.get("新生儿出生天数"))){
+                return;
+            }
+        }
         Map<String, String> BehStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         String marry = BehStructureMap.get("婚姻");
         if (StringUtil.isBlank(marry)) {

+ 8 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaifuyao/behospitalized/BEH02966.java

@@ -26,6 +26,14 @@ public class BEH02966 extends QCCatalogue {
             return;
         }
 
+        //宁还妇幼新生儿不判断此规则
+        if(inputInfo.getFirstPageRecordDoc() != null){
+            Map<String, String> firstPageRecordStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            if(StringUtil.isNotBlank(firstPageRecordStructureMap.get("新生儿出生天数"))){
+                return;
+            }
+        }
+
         Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         String gender = beHospitalStructureMap.get("性别");
         if (StringUtil.isBlank(gender)) {

+ 7 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/ninghaifuyao/firstpagerecord/FIRP02905.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -24,7 +25,13 @@ public class FIRP02905 extends QCCatalogue {
         }
         if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String outWay = firstpageStructureMap.get(Content.outWay);
             String name = firstpageStructureMap.get(Content.receivingOrganization);
+            //医嘱离院不需要接受机构(宁海妇幼)
+            if (StringUtil.isNotBlank(outWay) && "医嘱离院".equals(outWay)) {
+                status.set("0");
+                return;
+            }
             if (!CatalogueUtil.isEmpty(name)) {
                 status.set("0");
             }

+ 4 - 0
trans/src/main/java/com/lantone/qc/trans/ninghaifuyao/NingHaiFuYaoBeHospitalizedDocTrans.java

@@ -69,9 +69,13 @@ public class NingHaiFuYaoBeHospitalizedDocTrans extends ModelDocTrans {
             "联系地址=住址",
             "入院时间=入院日期",
             "月经婚育史=婚育史",
+            "家庭史=家族史",
             "实验室检查=辅助检查",
+            "临床诊断=初步诊断",
             "初步诊断医师签名:=初步诊断医师签名",
+            "医师签名=初步诊断医师签名",
             "初步诊断医师签名:时 间:=初步诊断签名时间",
+            "日期=初步诊断签名时间",
             "补充诊断医师签名:时 间:=补充诊断签名时间",
             "补充诊断医师签名:=补充诊断医师签名"
     );

+ 2 - 0
trans/src/main/java/com/lantone/qc/trans/ninghaifuyao/NingHaiFuYaoFirstCourseRecordDocTrans.java

@@ -75,8 +75,10 @@ public class NingHaiFuYaoFirstCourseRecordDocTrans extends ModelDocTrans {
     private List<String> keyContrasts = Lists.newArrayList(
             "时间=病历日期",
             "病历特点=病例特点",
+            "一. 病例特点=病例特点",
             "入院查体=查体",
             "辅助检查=辅检",
+            "入院诊断=初步诊断",
             "医师签名=医生签名",
             "2.诊断依据=诊断依据",
             "3.鉴别诊断=鉴别诊断",

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/ninghaifuyao/NingHaiFuYaoLeaveHospitalDocTrans.java

@@ -74,6 +74,7 @@ public class NingHaiFuYaoLeaveHospitalDocTrans extends ModelDocTrans {
             "实际住院天数=住院天数",
             "入院情况=入院情况",
             "诊疗经过=诊治经过",
+            "住院经过=诊治经过",
             "诊治经过(入院情况、治疗经过及重要辅助检查)=诊治经过",
             "入院情况=病史摘要",
             "辅助检查=主要实验室检查及器械检验结果",

+ 27 - 34
trans/src/main/java/com/lantone/qc/trans/ninghaifuyao/util/NingHaiFuYaoBeHospitalizedHtmlAnalysis.java

@@ -47,12 +47,12 @@ public class NingHaiFuYaoBeHospitalizedHtmlAnalysis implements NingHaiFuYaoHtmlA
         return map;
     }
 
-    //宁海第一人民医院
+    //宁海妇保医院
     private void analysisBeHospitalized(Document doc, Map<String, String> map) {
-        List<String> titles = Lists.newArrayList("姓 名","姓名","现 住 址","身份证号码","性别", "性 别","生于","父母姓名","联系电话","住址", "住 址","年 龄","年龄","电话号码",
-                "出生地", "出 生 地", "职 业", "职业", "入院时间","户籍所在地","户口地址", "入院日期","记录时间","记录日期","民 族", "民族", "病史陈述者","职 业", "联系人及关系",
-                "婚 姻", "婚姻", "联系人电话","联 系 人", "主诉", "主 诉", "现 病 史","现病史", "既 往 史", "既往史", "出生史","个 人 史", "个人史", "婚 育 史",
-                "月 经 史", "月经婚育史", "家 族 史","一般测量","实验室检查", "特殊检查","临床诊断","记录医生", "初步诊断", "补充诊断","医师签名","日 期");
+        List<String> titles = Lists.newArrayList("姓 名", "姓名", "户籍地址", "现 住 址", "身份证号码", "性别", "性 别", "生于", "父母姓名", "联系电话", "住址", "住 址", "年 龄", "年龄", "联系地址",
+                "电话号码", "出生地", "出 生 地", "职 业", "职业", "产前检查", "入院时间", "户籍所在地", "户口地址", "入院日期", "记录时间", "记录日期", "民 族", "民族", "病史陈述者", "职 业", "联系人及关系",
+                "婚 姻", "婚姻", "婚姻状况", "孕/ 产次", "末次月经", "预 产 期", "联系人电话", "联 系 人", "联系人", "身份证号", "联系方式", "主诉", "主 诉", "现 病 史", "现病史", "既 往 史", "既往史", "出生史", "个 人 史", "个人史", "月经史", "婚 育 史",
+                "月 经 史", "月经婚育史", "婚育史", "家 族 史", "家庭史", "家族史", "一般测量", "实验室检查", "特殊检查", "临床诊断", "记录医生", "初步诊断", "补充诊断", "医师签名", "日 期");
         String htmlContent = NingHaiFuYaoHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0).getElementById("main"), true);
         if (StringUtil.isNotBlank(htmlContent)) {
             htmlContent = htmlContent.replaceAll("[   ]", " ").replace("第 ( ) 页", "");
@@ -60,35 +60,30 @@ public class NingHaiFuYaoBeHospitalizedHtmlAnalysis implements NingHaiFuYaoHtmlA
             disDiagnose(map, Lists.newArrayList("初步诊断"), "医师签名:");
             disDiagnose(map, Lists.newArrayList("初步诊断医师签名:"), "时 间:");
             //入院记录 体格检查、补充及专科情况里获取辅助检查提取
-            getAuxiliary(map,Lists.newArrayList("体格检查","补充及专科情况","补充及专科情况"),htmlContent);
+            getAuxiliary(map, Lists.newArrayList("体格检查", "补充及专科情况", "补充及专科情况"), htmlContent);
             //婚育史特殊符号处理
 //            removeSymbol(map,"□","婚育史");
         }
     }
 
-    private void getAuxiliary(Map<String, String> map, ArrayList<String> newArrayList,String htmlContent) {
+    private void getAuxiliary(Map<String, String> map, ArrayList<String> newArrayList, String htmlContent) {
         CommonAnalysisUtil.html2StructureMapNoColon(newArrayList, htmlContent, map);
         //家族史其他内容清理
-        if(map.keySet().contains("家族史"))
-        {
+        if (map.keySet().contains("家族史")) {
             String fimaly = map.get("家族史");
-            if(map.keySet().contains("体格检查"))
-            {
-                removeMapVal(map,fimaly,"体格检查","家族史");
-                if(map.keySet().contains("补充及专科情况")&&StringUtil.isBlank(map.get("辅助检查")))
-                {
+            if (map.keySet().contains("体格检查")) {
+                removeMapVal(map, fimaly, "体格检查", "家族史");
+                if (map.keySet().contains("补充及专科情况") && StringUtil.isBlank(map.get("辅助检查"))) {
                     String auxiliary = map.get("补充及专科情况");
                     CommonAnalysisUtil.html2StructureMapNoColon(
-                            Lists.newArrayList("辅助检查"),auxiliary, map);
-                    if(map.get("辅助检查").contains("初步诊断")&&StringUtil.isNotBlank(map.get("初步诊断"))
-                            &&map.get("辅助检查").contains(map.get("初步诊断")))
-                    {
+                            Lists.newArrayList("辅助检查"), auxiliary, map);
+                    if (map.get("辅助检查").contains("初步诊断") && StringUtil.isNotBlank(map.get("初步诊断"))
+                            && map.get("辅助检查").contains(map.get("初步诊断"))) {
                         String val = map.get("辅助检查");
-                        if(val.contains(map.get("初步诊断")))
-                        {
-                            val = val.split("初步诊断")[0].replaceAll("初步诊断","")
-                                    .replaceAll(":","").trim();
-                            map.put("辅助检查",val);
+                        if (val.contains(map.get("初步诊断"))) {
+                            val = val.split("初步诊断")[0].replaceAll("初步诊断", "")
+                                    .replaceAll(":", "").trim();
+                            map.put("辅助检查", val);
 
                         }
                     }
@@ -98,26 +93,24 @@ public class NingHaiFuYaoBeHospitalizedHtmlAnalysis implements NingHaiFuYaoHtmlA
         }
     }
 
-    private void removeMapVal(Map<String, String> map, String val,String mapkey,String changeKey) {
-        if(val.contains(map.get(mapkey)))
-        {
-            val = val.split(map.get(mapkey))[0].replaceAll(mapkey,"").trim();
-            map.put(changeKey,val);
+    private void removeMapVal(Map<String, String> map, String val, String mapkey, String changeKey) {
+        if (val.contains(map.get(mapkey))) {
+            val = val.split(map.get(mapkey))[0].replaceAll(mapkey, "").trim();
+            map.put(changeKey, val);
         }
     }
 
     /**
      * @Author songxl
      * @Description map中特殊符号处理
-     * @Date  2021/4/8
-     * @Param [map,symbol,key]
+     * @Date 2021/4/8
+     * @Param [map, symbol, key]
      * @Return void
      * @MethodName removeSymbol
      */
-    private void removeSymbol(Map<String, String> map,String symbol,String key) {
-        if(map.keySet().contains(key))
-        {
-            map.put(key,map.get(key).replaceAll(symbol,"").trim());
+    private void removeSymbol(Map<String, String> map, String symbol, String key) {
+        if (map.keySet().contains(key)) {
+            map.put(key, map.get(key).replaceAll(symbol, "").trim());
         }
     }
 

+ 13 - 4
trans/src/main/java/com/lantone/qc/trans/ninghaifuyao/util/NingHaiFuYaoFirstCourseRecordHtmlAnalysis.java

@@ -25,21 +25,30 @@ public class NingHaiFuYaoFirstCourseRecordHtmlAnalysis implements NingHaiFuYaoHt
     public Map<String, String> analysis(String... args) {
         Map<String, String> structureMap = Maps.newLinkedHashMap();
         try {
-            List<String> titles = Lists.newArrayList("一. 病例特点", "二. 拟诊讨论",
-                    "诊断依据","初步诊断","鉴别诊断","诊疗计划","医师签名",
-                    "三. 诊疗计划","三、诊疗计划", "医师签名");
+            List<String> titles = Lists.newArrayList("一. 病例特点", "二. 拟诊讨论", "入院诊断",
+                    "诊断依据", "初步诊断", "鉴别诊断", "诊疗计划", "医师签名",
+                    "三. 诊疗计划", "三、诊疗计划", "医师签名");
             Document doc = Jsoup.parse(args[0]);
             String htmlContent = NingHaiFuYaoHtmlAnalysisUtil.blockDivToStr(doc.selectFirst("body").child(0), true);
             if (StringUtil.isNotBlank(htmlContent)) {
+                String date = CommonAnalysisUtil.NHExtractDate(htmlContent);
+                if (date != null) {
+                    structureMap.put("病历日期", date);
+                    htmlContent = htmlContent.replace(date, "").trim();
+                }
+                if (!htmlContent.contains("一. 病例特点")) {
+                    htmlContent = "一. 病例特点:" + htmlContent;
+                }
                 CommonAnalysisUtil.html2StructureMap(titles, htmlContent, structureMap);
             }
             if (structureMap.containsKey("二.拟诊讨论")) {
                 List<String> listTitle = CommonAnalysisUtil.sortTitles(
                         Lists.newArrayList("1.初步诊断", "2.诊断依据", "3.鉴别诊断"
-                                ,"诊断依据","鉴别诊断","初步诊断"), structureMap.get("二.拟诊讨论")
+                                , "诊断依据", "鉴别诊断", "初步诊断"), structureMap.get("二.拟诊讨论")
                 );
                 CommonAnalysisUtil.cutByTitles(structureMap.get("二.拟诊讨论"), listTitle, 0, structureMap);
             }
+
             NingHaiFuYaoHtmlAnalysisUtil.insertModuleId(modeId, args[2], structureMap);
         } catch (Exception e) {
             log.error(e.getMessage(), e);

+ 1 - 1
trans/src/main/java/com/lantone/qc/trans/ninghaifuyao/util/NingHaiFuYaoLeaveHospitalHtmlAnalysis.java

@@ -28,7 +28,7 @@ public class NingHaiFuYaoLeaveHospitalHtmlAnalysis implements NingHaiFuYaoHtmlAn
             List<String> titles = Lists.newArrayList("性别", "婚姻", "入院日期", "出院日期", "住院天数","入院诊断", "出院诊断","分娩日期",
                     "分娩方式", "诊治经过(入院情况、治疗经过及重要辅助检查)","手术指征", "入院情况", "辅助检查","诊治经过", "住院经过", "入院后检查化验结果",
                     "入院后化验检查结果", "诊疗经过", "治疗结果", "转归情况", "出院计划","出院情况","出院时情况", "治疗效果","治疗结果", "出院医嘱",
-                    "特殊资料检查号码","X光拍片","MRI","CT","病理切片","医师签字", "日期","主治医师","住院医师");
+                    "特殊资料检查号码","特殊检查资料号","X光拍片","MRI","CT","病理切片","医师签字", "日期","主治医师","住院医师");
             String html = args[0];
             String recTitle = args[1];
             String recTypeId = args[2];