Browse Source

添加、修改病案首页规则

hujing 5 years ago
parent
commit
56e85f11d4

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0179.java

@@ -21,7 +21,7 @@ import java.util.Map;
 public class FIRP0179 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             List<Map<String, String>> outpatientEmergencyDiags = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
             if (ListUtil.isNotEmpty(outpatientEmergencyDiags)) {
                 for (Map<String, String> outpatientEmergencyDiag:outpatientEmergencyDiags) {

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0186.java

@@ -20,7 +20,7 @@ public class FIRP0186 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             String outWay = firstpageStructureMap.get(Content.outWay).toString();
             String deadAutopsy = firstpageStructureMap.get(Content.deadAutopsy).toString();
             if (!CatalogueUtil.isEmpty(outWay) && outWay.contains("死亡") && CatalogueUtil.isEmpty(deadAutopsy)){

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0187.java

@@ -20,7 +20,7 @@ public class FIRP0187 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             String outWay = firstpageStructureMap.get(Content.outWay).toString();
             String deadAutopsy = firstpageStructureMap.get(Content.deadAutopsy).toString();
             if (!CatalogueUtil.isEmpty(outWay) && !outWay.contains("死亡") && !CatalogueUtil.isEmpty(deadAutopsy)){

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0189.java

@@ -19,7 +19,7 @@ import java.util.Map;
 public class FIRP0189 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             String rhFactor = firstpageStructureMap.get(Content.rhFactor).toString();
             if (!CatalogueUtil.isEmpty(rhFactor)){
                 status = "0";

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java

@@ -22,7 +22,7 @@ public class FIRP0196 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             String brainInjuryComaTime = firstpageStructureMap.get(Content.brainInjuryComaTime).toString();
             if (!CatalogueUtil.isEmpty(brainInjuryComaTime)) {
                 Pattern digit = Pattern.compile("[\\d|一二三四五六七八九十壹贰叁肆伍陆柒捌玖拾]+");

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0239.java

@@ -20,7 +20,7 @@ public class FIRP0239 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             String reHospitalization = firstpageStructureMap.get(Content.reHospitalization).toString();
             if (CatalogueUtil.isEmpty(reHospitalization)) {
                 status = "-1";

+ 18 - 13
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java

@@ -47,7 +47,7 @@ public class BeHospitalizedAI {
     public void medrec(InputInfo inputInfo, CRFServiceClient crfServiceClient) {
         JSONArray crfContent = new JSONArray();
         BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
-        if(beHospitalizedDoc != null){
+        if (beHospitalizedDoc != null) {
             String chief_text = beHospitalizedDoc.getChiefLabel().getText();
             String Personal_text = beHospitalizedDoc.getPersonalLabel().getText();
             String family_text = beHospitalizedDoc.getFamilyLabel().getText();
@@ -77,7 +77,11 @@ public class BeHospitalizedAI {
             //个人史
             putContent(crfContent, medicalTextType.get(2), Personal_text, Content.personal);
             //月经史
-            putContent(crfContent, medicalTextType.get(2), menstrual_text, Content.menses);
+            String concatMenstrual = "";
+            if (Personal_text.length() > 30) {
+                concatMenstrual = Personal_text.substring(Personal_text.length() - 30);
+            }
+            putContent(crfContent, medicalTextType.get(2), concatMenstrual + menstrual_text, Content.menses);
             //婚育史
             putContent(crfContent, medicalTextType.get(2), marital_text, Content.marriage);
             //辅助检查(暂用主诉现病史模型,之后会新训练单独模型再做修改)
@@ -134,7 +138,7 @@ public class BeHospitalizedAI {
         EntityProcess entityProcess = new EntityProcess();
         List<Lemma> entityTree = entityProcess.createEntityTree(aiOut, EntityEnum.CURE.toString());
         List<Treat> treats = new ArrayList<>();
-        for (Lemma lemma:entityTree){
+        for (Lemma lemma : entityTree) {
             Treat treat = new Treat();
             treat.setName(lemma.getText());
             treats.add(treat);
@@ -235,18 +239,18 @@ public class BeHospitalizedAI {
      * @param inputInfo
      */
     public void putInitialDiagCrfData(JSONObject jsonObject, InputInfo inputInfo) {
-//        if (jsonObject == null) {
-//            return;
-//        }
-//        JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
+        //        if (jsonObject == null) {
+        //            return;
+        //        }
+        //        JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
         //诊断信息
         EntityProcessDiag entityProcessDiag = new EntityProcessDiag();
-//        List<Diag> diags = entityProcessDiag.extractEntity(aiOut);
-//
-//        InitialDiagLabel initialDiagLabel = new InitialDiagLabel();
-//        initialDiagLabel.setText(inputInfo.getBeHospitalizedDoc().getInitialDiagLabel().getText());
-//        initialDiagLabel.setDiags(diags);
-//        inputInfo.getBeHospitalizedDoc().setInitialDiagLabel(initialDiagLabel);
+        //        List<Diag> diags = entityProcessDiag.extractEntity(aiOut);
+        //
+        //        InitialDiagLabel initialDiagLabel = new InitialDiagLabel();
+        //        initialDiagLabel.setText(inputInfo.getBeHospitalizedDoc().getInitialDiagLabel().getText());
+        //        initialDiagLabel.setDiags(diags);
+        //        inputInfo.getBeHospitalizedDoc().setInitialDiagLabel(initialDiagLabel);
 
         //因为关系抽取未标注完成,先用规则
         String diagString = inputInfo.getBeHospitalizedDoc().getInitialDiagLabel().getText();
@@ -264,6 +268,7 @@ public class BeHospitalizedAI {
 
     /**
      * 辅助检查信息抽取
+     *
      * @param jsonObject
      * @param inputInfo
      */

+ 1 - 1
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -173,7 +173,7 @@ public class Content {
     public static final String actualStay = "实际住院天数";//病案首页用
     public static final String drugAllergy = "药物过敏";
     public static final String allergy_drug = "过敏药物";
-    public static final String dead_autopsy = "死亡患者尸检";
+    public static final String deadAutopsy = "死亡患者尸检";
     public static final String bloodType="血型";
     public static final String rhFactor="RH";
     public static final String qc_quality="病案质量";