Browse Source

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

hujing 5 years ago
parent
commit
44ea4df7c6

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH0011.java

@@ -56,7 +56,7 @@ public class BEH0011 extends QCCatalogue {
                     String lastGeneral = generals.get(generals.size() - 1).getName();
                     String lastGeneral = generals.get(generals.size() - 1).getName();
                     int lastGeneralIndex = presentText.indexOf(lastGeneral);
                     int lastGeneralIndex = presentText.indexOf(lastGeneral);
                     for (Diag presentDiag : presentDiags) {
                     for (Diag presentDiag : presentDiags) {
-                        if (presentDiag.getNegative() != null) {
+                        if (presentDiag.getNegative() != null || presentDiag.getHospitalDiagName().contains("否认")) {
                             continue;
                             continue;
                         }
                         }
                         /* 现病史中一般情况之后的疾病名称 */
                         /* 现病史中一般情况之后的疾病名称 */

+ 43 - 39
kernel/src/main/java/com/lantone/qc/kernel/catalogue/deathcasediscuss/DEAC0099.java

@@ -1,40 +1,44 @@
-package com.lantone.qc.kernel.catalogue.deathcasediscuss;
-
-import com.lantone.qc.kernel.catalogue.QCCatalogue;
-import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.pub.model.InputInfo;
-import com.lantone.qc.pub.model.OutputInfo;
-import org.springframework.stereotype.Component;
-
-import java.util.Map;
-
-/**
- * @ClassName : DEAC0099
- * @Description : 死亡病例讨论记录中无主诉
- * @Author : 胡敬
- * @Date: 2020-03-19 09:35
- */
-@Component
-public class DEAC0099 extends QCCatalogue {
-    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        status.set("0");
-        if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null
-                && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getChiefLabel() != null) {
-            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
-            String chiefText = inputInfo.getBeHospitalizedDoc().getChiefLabel().getText();
-            String admissionStatus = deathCaseDiscussStructureMap.get("入院情况");
-            if (CatalogueUtil.isEmpty(admissionStatus) || CatalogueUtil.isEmpty(chiefText)) {
-                return;
-            }
-            chiefText = CatalogueUtil.removeSpecialChar(chiefText).replace("。", "");
-            admissionStatus = CatalogueUtil.removeSpecialChar(admissionStatus).replace("。", "");
-            if (!admissionStatus.contains(chiefText)) {
-                status.set("-1");
-            }
-            //处理台州的
-            if (admissionStatus.contains("患者因")) {
-                status.set("0");
-            }
-        }
-    }
+package com.lantone.qc.kernel.catalogue.deathcasediscuss;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : DEAC0099
+ * @Description : 死亡病例讨论记录中无主诉
+ * @Author : 胡敬
+ * @Date: 2020-03-19 09:35
+ */
+@Component
+public class DEAC0099 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        if (inputInfo.getDeathCaseDiscussDoc() != null && inputInfo.getDeathCaseDiscussDoc().getStructureMap() != null
+                && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getChiefLabel() != null) {
+            Map<String, String> deathCaseDiscussStructureMap = inputInfo.getDeathCaseDiscussDoc().getStructureMap();
+            String chiefText = inputInfo.getBeHospitalizedDoc().getChiefLabel().getText();
+            String admissionStatus = deathCaseDiscussStructureMap.get("入院情况");
+            if (CatalogueUtil.isEmpty(admissionStatus) || CatalogueUtil.isEmpty(chiefText)) {
+                return;
+            }
+            chiefText = CatalogueUtil.removeSpecialChar(chiefText).replace("。", "");
+            if(StringUtils.isNotEmpty(chiefText)){
+                return;
+            }
+            admissionStatus = CatalogueUtil.removeSpecialChar(admissionStatus).replace("。", "");
+            if (!admissionStatus.contains(chiefText)) {
+                status.set("-1");
+            }
+            //处理台州的
+            if (admissionStatus.contains("患者因")) {
+                status.set("0");
+            }
+        }
+    }
 }
 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0095.java

@@ -53,7 +53,7 @@ public class FIRC0095 extends QCCatalogue {
                     String lastGeneral = generals.get(generals.size() - 1).getName();
                     String lastGeneral = generals.get(generals.size() - 1).getName();
                     int lastGeneralIndex = presentText.indexOf(lastGeneral);
                     int lastGeneralIndex = presentText.indexOf(lastGeneral);
                     for (Diag presentDiag : presentDiags) {
                     for (Diag presentDiag : presentDiags) {
-                        if (presentDiag.getNegative() != null) {
+                        if (presentDiag.getNegative() != null || presentDiag.getHospitalDiagName().contains("否认")) {
                             continue;
                             continue;
                         }
                         }
                         /* 现病史中一般情况之后的疾病名称 */
                         /* 现病史中一般情况之后的疾病名称 */

+ 24 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0192.java

@@ -1,14 +1,19 @@
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.client.ChiefPresentSimilarityServiceClient;
+import com.lantone.qc.kernel.structure.ai.ModelAI;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
 import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -20,6 +25,9 @@ import java.util.Map;
  */
  */
 @Component
 @Component
 public class FIRP0192 extends QCCatalogue {
 public class FIRP0192 extends QCCatalogue {
+    @Autowired
+    ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         status.set("0");
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
         FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
@@ -32,17 +40,29 @@ public class FIRP0192 extends QCCatalogue {
         if (mapList != null && mapList.size() > 0) {
         if (mapList != null && mapList.size() > 0) {
             Map<String, String> op = mapList.get(0);
             Map<String, String> op = mapList.get(0);
             String oName = op.get(Content.operative_name);
             String oName = op.get(Content.operative_name);
+            ModelAI modelAI = new ModelAI();
             String operationName = "";
             String operationName = "";
             for (OperationDoc operationDoc : operationDocs) {
             for (OperationDoc operationDoc : operationDocs) {
                 if (operationDoc.getOperationRecordDoc() != null) {
                 if (operationDoc.getOperationRecordDoc() != null) {
                     operationName = operationDoc.getOperationRecordDoc().getStructureMap().get("手术名称");
                     operationName = operationDoc.getOperationRecordDoc().getStructureMap().get("手术名称");
                 }
                 }
-                if (StringUtil.isBlank(operationName) && operationDoc.getOperationDiscussionDoc() != null){
+                if (StringUtil.isBlank(operationName) && operationDoc.getOperationDiscussionDoc() != null) {
                     operationName = operationDoc.getOperationDiscussionDoc().getStructureMap().get("手术名称");
                     operationName = operationDoc.getOperationDiscussionDoc().getStructureMap().get("手术名称");
                 }
                 }
-                if (StringUtil.isNotBlank(operationName) && !operationName.contains(oName)){
-                    status.set("-1");
-                    return;
+                if (StringUtil.isNotBlank(operationName)) {
+                    String[] operationNames = operationName.split("\\+");
+                    JSONArray jsonArray = modelAI.loadChiefPresentSimilarAI(oName, Arrays.asList(operationNames), false
+                            , "operation", chiefPresentSimilarityServiceClient);
+                    if (jsonArray.size() == 2) {
+                        /* 相似度最高手术 */
+                        String operation = jsonArray.getString(0);
+                        /* 相似度分数 */
+                        double likeRate = jsonArray.getDoubleValue(1);
+                        if (likeRate < 0.9) {
+                            status.set("-1");
+                            return;
+                        }
+                    }
                 }
                 }
             }
             }
         }
         }

+ 2 - 1
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouDeathRecordDocTrans.java

@@ -39,7 +39,8 @@ public class TaiZhouDeathRecordDocTrans extends ModelDocTrans {
             "初步诊断=入院诊断",
             "初步诊断=入院诊断",
             "诊治经过=诊疗经过",
             "诊治经过=诊疗经过",
             "本人姓名=姓名",
             "本人姓名=姓名",
-            "现病史- 发病情况=发病情况"
+            "现病史- 发病情况=发病情况",
+            "医生=记录医师"
     );
     );
 
 
 }
 }