瀏覽代碼

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

rengb 5 年之前
父節點
當前提交
31eb684f50

+ 56 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02980.java

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -33,6 +34,9 @@ public class BEH02980 extends QCCatalogue {
     @Autowired
     ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
 
+    private List<String> containList = Arrays.asList("脑萎缩", "慢性", "纤颤", "高血压", "糖尿", "冠状", "冠心病", "支架", "起搏器", "房颤", "风湿");
+    private List<String> filterList = Arrays.asList("心脏病", "低血糖", "急性", ";");
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
@@ -41,10 +45,42 @@ public class BEH02980 extends QCCatalogue {
 
         List<String> pos_diags = new ArrayList<>();
         List<String> neg_diags = new ArrayList<>();
-
+        //现病史需要取一般情况之后疾病
         if (presentLabel != null) {
-            extract_diags(presentLabel.getDiags(), pos_diags, neg_diags);
+            List<GeneralDesc> generals = presentLabel.getGenerals();
+            if (generals.size() > 0) {
+                String presentText = presentLabel.getText();
+                List<Diag> presentDiags = presentLabel.getDiags();
+                /* 取现病史中一般情况之后的疾病名称 */
+                if (StringUtil.isNotBlank(presentText) && presentDiags.size() > 0) {
+                    String lastGeneral = generals.get(generals.size() - 1).getName();
+                    int lastGeneralIndex = presentText.indexOf(lastGeneral);
+                    for (Diag presentDiag : presentDiags) {
+                        if (presentDiag.getNegative() != null || presentDiag.getHospitalDiagName().contains("否认")) {
+                            continue;
+                        }
+                        /* 现病史中一般情况之后的疾病名称 */
+                        if (presentText.indexOf(presentDiag.getHospitalDiagName()) > lastGeneralIndex) {
+                            if (isContains(presentDiag.getHospitalDiagName()) && !isFilter(presentDiag.getHospitalDiagName())) {
+                                String dgname = presentDiag.getHospitalDiagName();
+                                if (presentDiag.getNegative()==null) {
+                                    if (!pos_diags.contains(dgname)) {
+                                        pos_diags.add(dgname);
+                                    }
+                                }
+                                else {
+                                    if (!neg_diags.contains(dgname)) {
+                                        neg_diags.add(dgname);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
         }
+
+
         if (pastLabel != null) {
             extract_diags(pastLabel.getDiags(), pos_diags, neg_diags);
         } else {
@@ -132,4 +168,22 @@ public class BEH02980 extends QCCatalogue {
         return dgs;
     }
 
+    private boolean isContains(String diagName) {
+        for (String c : containList) {
+            if (diagName.contains(c)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean isFilter(String diagName) {
+        for (String c : filterList) {
+            if (diagName.contains(c)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
 }

+ 4 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0563.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
@@ -31,8 +32,9 @@ public class CLI0563 extends QCCatalogue {
                 if(cliBStructureMap.containsKey("输注开始")){
                     if(!StringUtils.isEmpty(cliBStructureMap.get("输注开始"))){
                         try {
-                            Date date_in = new SimpleDateFormat(FORMAT_LONC_CN_MI).parse(cliBStructureMap.get("输注开始"));
-                        } catch (ParseException e) {
+                            //Date date_in = new SimpleDateFormat(FORMAT_LONC_CN_MI).parse(cliBStructureMap.get("输注开始"));
+                            Date date_in = StringUtil.parseDateTime(cliBStructureMap.get("输注开始"));
+                        } catch (Exception e) {
                             status.set("-1");
                             break;
                         }

+ 4 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0565.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
@@ -31,8 +32,9 @@ public class CLI0565 extends QCCatalogue {
                 if(cliBStructureMap.containsKey("输注结束")){
                     if(!StringUtils.isEmpty(cliBStructureMap.get("输注结束"))){
                         try {
-                            Date date_in = new SimpleDateFormat(FORMAT_LONC_CN_MI).parse(cliBStructureMap.get("输注结束"));
-                        } catch (ParseException e) {
+                            //Date date_in = new SimpleDateFormat(FORMAT_LONC_CN_MI).parse(cliBStructureMap.get("输注结束"));
+                            Date date_in = StringUtil.parseDateTime(cliBStructureMap.get("输注结束"));
+                        } catch (Exception e) {
                             status.set("-1");
                             break;
                         }

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA02987.java

@@ -47,8 +47,8 @@ public class LEA02987 extends QCCatalogue {
         for (DoctorAdviceDoc adviceDoc : doctorAdviceDocs) {
             Map<String, String> adviceDocStructureMap = adviceDoc.getStructureMap();
             String name = adviceDocStructureMap.get("医嘱项目名称");
-            String type = adviceDocStructureMap.get("医嘱处方类型");
-            if (StringUtil.isNotBlank(type) && type.contains("药")) {
+            String type = adviceDocStructureMap.get("医嘱类型判别");
+            if (StringUtil.isNotBlank(type) && type.equals("出院带药")) {
                 if (StringUtil.isNotBlank(name)) {
                     drugs.add(name);
                 }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02985.java

@@ -17,6 +17,7 @@ import java.util.Map;
 /**
  * @ClassName : THR02985
  * @Description : 医嘱有抗生素使用病程无记录
+ * 药品类型(0.普药 1.抗生素 2.激素)
  * @Author : 胡敬
  * @Date: 2020-06-23 10:04
  */
@@ -33,9 +34,9 @@ public class THR02985 extends QCCatalogue {
         for (DoctorAdviceDoc adviceDoc : doctorAdviceDocs) {
             Map<String, String> adviceDocStructureMap = adviceDoc.getStructureMap();
             String name = adviceDocStructureMap.get("医嘱项目名称");
-            String drugCategory = adviceDocStructureMap.get("医嘱药品类别");
+            String drugCategory = adviceDocStructureMap.get("药品类型");
             String startDateStr = adviceDocStructureMap.get("医嘱开始时间");
-            if (StringUtil.isNotBlank(drugCategory) && drugCategory.contains("抗生素")) {
+            if (StringUtil.isNotBlank(drugCategory) && drugCategory.equals("1")) {
                 if (StringUtil.isNotBlank(name)) {
                     doctorAdviceDrugMap.put(StringUtil.parseDateTime(startDateStr), name);
                 }

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02986.java

@@ -17,6 +17,7 @@ import java.util.Map;
 /**
  * @ClassName : THR02986
  * @Description : 医嘱有激素使用病程无记录
+ * 药品类型(0.普药 1.抗生素 2.激素)
  * @Author : 胡敬
  * @Date: 2020-06-23 10:43
  */
@@ -33,9 +34,9 @@ public class THR02986 extends QCCatalogue {
         for (DoctorAdviceDoc adviceDoc : doctorAdviceDocs) {
             Map<String, String> adviceDocStructureMap = adviceDoc.getStructureMap();
             String name = adviceDocStructureMap.get("医嘱项目名称");
-            String drugCategory = adviceDocStructureMap.get("医嘱药品类别");
+            String drugCategory = adviceDocStructureMap.get("药品类型");
             String startDateStr = adviceDocStructureMap.get("医嘱开始时间");
-            if (StringUtil.isNotBlank(drugCategory) && drugCategory.contains("激素")) {
+            if (StringUtil.isNotBlank(drugCategory) && drugCategory.contains("2")) {
                 if (StringUtil.isNotBlank(name)) {
                     doctorAdviceDrugMap.put(StringUtil.parseDateTime(startDateStr), name);
                 }

+ 3 - 3
kernel/src/main/resources/application.yml

@@ -18,13 +18,13 @@ qc:
   hospital_id: 1,2,3
 
 CRF:
-  url: http://192.168.3.150:3456/api/mr_info_ex/entity_predict
+  url: http://192.168.2.234:3456/api/mr_info_ex/entity_predict
 
 Similarity:
-  url: http://192.168.3.150:3456/api/mr_info_ex/similarity
+  url: http://192.168.2.234:3456/api/mr_info_ex/similarity
 
 ChiefPresentSimilarity:
-  url: http://192.168.3.150:3456/api/mr_info_ex/chief_present_similarity
+  url: http://192.168.2.234:3456/api/mr_info_ex/chief_present_similarity
 
 logging:          # 日志
   config: classpath:logback-spring.xml

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/shaoyf/ShaoyfClinicalBloodDocTrans.java

@@ -44,7 +44,8 @@ public class ShaoyfClinicalBloodDocTrans extends ModelDocTrans {
             "开始时间=输注开始",
             "医生=记录医师",
             "结束时间=输注结束",
-            "输血原因=输血目的",
+            "输血原因=输注原因",
+            "记录时间=病历日期",
             "事件日期=病历日期",
             "内容=输注后效果评价"
     );