Browse Source

Merge remote-tracking branch 'origin/master'

rengb 5 years ago
parent
commit
32b6b25519

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0092.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstcourserecord;
+
+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.FirstCourseRecordDoc;
+import com.lantone.qc.pub.model.label.TreatPlanLabel;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName : FIRC0092
+ * @Description : 治疗措施不具体
+ * @Author : 胡敬
+ * @Date: 2020-03-24 15:21
+ */
+@Component
+public class FIRC0092 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (firstCourseRecordDoc != null) {
+            TreatPlanLabel treatPlanLabel = firstCourseRecordDoc.getTreatPlanLabel();
+            if (treatPlanLabel.getNursingLevel() == null ||
+                    treatPlanLabel.getMedicine() == null && treatPlanLabel.getTreat().size() == 0) {
+                status = "-1";
+            }
+        }
+    }
+}

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/FirstCourseRecordAI.java

@@ -26,7 +26,7 @@ public class FirstCourseRecordAI extends ModelAI {
     /**
     /**
      *
      *
      */
      */
-    public static List<String> medicalTextType = Arrays.asList("FirstCoursera_cx", "Diagnoses_cx");
+    public static List<String> medicalTextType = Arrays.asList("FirstCoursera_cx", "Diagnoses_cx","FirstCourseTreatment_cx");
     public static String entityRelationObject = "entity_relation_object";
     public static String entityRelationObject = "entity_relation_object";
     public static String outputs = "outputs";
     public static String outputs = "outputs";
     public static String content = "content";
     public static String content = "content";
@@ -44,7 +44,7 @@ public class FirstCourseRecordAI extends ModelAI {
             //鉴别诊断
             //鉴别诊断
             putContent(crfContent, medicalTextType.get(1), firstCourseRecordDoc.getDifferentialDiagLabel().getText(), Content.differential_diag_basis);
             putContent(crfContent, medicalTextType.get(1), firstCourseRecordDoc.getDifferentialDiagLabel().getText(), Content.differential_diag_basis);
             //诊疗计划
             //诊疗计划
-            putContent(crfContent, medicalTextType.get(0), firstCourseRecordDoc.getTreatPlanLabel().getText(), Content.treat_plan);
+            putContent(crfContent, medicalTextType.get(2), firstCourseRecordDoc.getTreatPlanLabel().getText(), Content.treat_plan);
 
 
             JSONObject midData = loadAI(crfContent, crfServiceClient);//crf返回数据
             JSONObject midData = loadAI(crfContent, crfServiceClient);//crf返回数据
             putCaseCharacteristicCrfData(midData.getJSONObject(Content.case_feature), inputInfo);//处理病历特点
             putCaseCharacteristicCrfData(midData.getJSONObject(Content.case_feature), inputInfo);//处理病历特点

+ 1 - 4
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/OperationAI.java

@@ -4,14 +4,11 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.lantone.qc.kernel.client.CRFServiceClient;
 import com.lantone.qc.kernel.client.CRFServiceClient;
 import com.lantone.qc.kernel.structure.ai.process.EntityProcessOperationDiscussion;
 import com.lantone.qc.kernel.structure.ai.process.EntityProcessOperationDiscussion;
-import com.lantone.qc.kernel.structure.ai.process.EntityProcessThreeLevelWard;
 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.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDiscussionDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDiscussionDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.label.OperationDiscussionLabel;
 import com.lantone.qc.pub.model.label.OperationDiscussionLabel;
-import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
@@ -26,7 +23,7 @@ public class OperationAI extends ModelAI {
     /**
     /**
      *
      *
      */
      */
-    public static List<String> medicalTextType = Arrays.asList("CourseAfterOperation");
+    public static List<String> medicalTextType = Arrays.asList("CourseAfterOperation_cx");
     public static String entityRelationObject = "entity_relation_object";
     public static String entityRelationObject = "entity_relation_object";
     public static String outputs = "outputs";
     public static String outputs = "outputs";
     public static String content = "content";
     public static String content = "content";

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/ThreeLevelWardAI.java

@@ -24,7 +24,7 @@ public class ThreeLevelWardAI extends ModelAI {
     /**
     /**
      *
      *
      */
      */
-    public static List<String> medicalTextType = Arrays.asList("CourseRecord");
+    public static List<String> medicalTextType = Arrays.asList("CourseRecord_cx");
     public static String entityRelationObject = "entity_relation_object";
     public static String entityRelationObject = "entity_relation_object";
     public static String outputs = "outputs";
     public static String outputs = "outputs";
     public static String content = "content";
     public static String content = "content";

+ 6 - 6
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/model/EntityEnum.java

@@ -10,7 +10,7 @@ public enum EntityEnum {
     LABORATORY("实验室检查"), LABORATORY_VALUE("实验室检查值"), AUXILIARY_EXAMINATION("辅助检查"), AUXILIARY_DESCRIPT("辅助检查描述"),
     LABORATORY("实验室检查"), LABORATORY_VALUE("实验室检查值"), AUXILIARY_EXAMINATION("辅助检查"), AUXILIARY_DESCRIPT("辅助检查描述"),
     NEGATIVE("否定"), POSSIBLE("可能的"), TIME("时间"), CAUSE("诱因"), MODIFICATION("修饰"),
     NEGATIVE("否定"), POSSIBLE("可能的"), TIME("时间"), CAUSE("诱因"), MODIFICATION("修饰"),
     PROPERTY("性质"), DEGREE("程度"), AGGRAVATE("加重情况"), RELIEF("缓解情况"), BEHOSPITALIZEDWAY("入院途径"),
     PROPERTY("性质"), DEGREE("程度"), AGGRAVATE("加重情况"), RELIEF("缓解情况"), BEHOSPITALIZEDWAY("入院途径"),
-    TREND("趋势"), FREQUENCY("频率"), QUANTITY("数量"), SIZE("尺寸"), CURE("治疗"), DRUG("药物名称"),
+    TREND("趋势"), FREQUENCY("频率"), QUANTITY("数量"), SIZE("尺寸"), CURE("治疗"), TREAT_MENT("治疗或治疗目的"), DRUG("药物名称"),
     DOSE("药品剂量"), OPERATION("手术名称"), GENERAL("一般情况"), GENERAL_DESCRIPT("一般情况描述"),
     DOSE("药品剂量"), OPERATION("手术名称"), GENERAL("一般情况"), GENERAL_DESCRIPT("一般情况描述"),
     OPERATION_KEYWORD("手术史"), OPERATION_RESULT("手术结果"), INJURY("外伤史"), ALLERGY("过敏"),
     OPERATION_KEYWORD("手术史"), OPERATION_RESULT("手术结果"), INJURY("外伤史"), ALLERGY("过敏"),
     FOOD_ALLERGY("食物过敏原"), DRUG_ALLERGY("药物过敏原"), ALLERGY_SYMPTOM("过敏表现"), BLOOD_TRANSFUSION("输血史"),
     FOOD_ALLERGY("食物过敏原"), DRUG_ALLERGY("药物过敏原"), ALLERGY_SYMPTOM("过敏表现"), BLOOD_TRANSFUSION("输血史"),
@@ -21,12 +21,12 @@ public enum EntityEnum {
     OCCUPATION("职业"), LOCATION("地点"), DEAD("死亡"), DEAD_REASON("死亡原因"),
     OCCUPATION("职业"), LOCATION("地点"), DEAD("死亡"), DEAD_REASON("死亡原因"),
     SIMILAR_DISEASE_KEYWORD("相似疾病"), GENETIC_DISEASE_KEYWORD("家族遗传病"), EPIDEMIC_AREA_HISTORY("疫区史"), SPECIAL_HOBBY("特殊嗜好"),
     SIMILAR_DISEASE_KEYWORD("相似疾病"), GENETIC_DISEASE_KEYWORD("家族遗传病"), EPIDEMIC_AREA_HISTORY("疫区史"), SPECIAL_HOBBY("特殊嗜好"),
     CONTACT_HISTORY("接触史"), MARITAL_HISTORY("冶游史"), MARITAL_STATUS("婚姻情况"), MARRYIAGE("结婚年龄"), NEAR_RELATION("近亲史"),
     CONTACT_HISTORY("接触史"), MARITAL_HISTORY("冶游史"), MARITAL_STATUS("婚姻情况"), MARRYIAGE("结婚年龄"), NEAR_RELATION("近亲史"),
-    CURE_AIM("治疗目的"), OTHER("其他"), OUTERCOURTYARD("外院"), NURSINGLEVEL("护理级别"), CHIEF("主诉"), NOTES("注意事项"),
+    CURE_AIM("治疗目的"), OTHER("其他"), OUTERCOURTYARD("外院"), NURSING_LEVEL("护理级别"), CHIEF("主诉"), NOTES("注意事项"),
     KEY_WORD_FOR_DOCTOR_ADVICES("出院医嘱标题"), DOCTORADVICE("医嘱"), KEY_WORD_FOR_PART("大标题"), OUTCOME("转归情况"),
     KEY_WORD_FOR_DOCTOR_ADVICES("出院医嘱标题"), DOCTORADVICE("医嘱"), KEY_WORD_FOR_PART("大标题"), OUTCOME("转归情况"),
-    PHYSICAL_EXAMINATION("查体"),TITLE_FOR_SIGN("查体标题"),TITLE_FOR_DIAG("诊断标题"),TITLE_FOR_DIAG_BASIS("诊断依据标题"),
-    TITLE_FOR_DIFF("鉴别诊断标题"),TITLE_FOR_TREAT("诊疗计划标题"),TITLE("标题"), TREATMENT_PLAN("诊疗计划"),
-    TITLE_OF_OPERATIVE_FINDINGS("手术经过标题"),TITLE_OF_MEASURES_AFTER_OP("术后处理措施标题"),
-    TITLE_OF_RISK_AFTER_OP("术后风险标题"),TITLE_OF_ATTENTION_AFTER_OP("术后注意事项标题"),VITAL("生命体征");
+    PHYSICAL_EXAMINATION("查体"), TITLE_FOR_SIGN("查体标题"), TITLE_FOR_DIAG("诊断标题"), TITLE_FOR_DIAG_BASIS("诊断依据标题"),
+    TITLE_FOR_DIFF("鉴别诊断标题"), TITLE_FOR_TREAT("诊疗计划标题"), TITLE("标题"), TREATMENT_PLAN("诊疗计划"),
+    TITLE_OF_OPERATIVE_FINDINGS("手术经过标题"), TITLE_OF_MEASURES_AFTER_OP("术后处理措施标题"),
+    TITLE_OF_RISK_AFTER_OP("术后风险标题"), TITLE_OF_ATTENTION_AFTER_OP("术后注意事项标题"), VITAL("生命体征");
 
 
     private String value;
     private String value;
 
 

+ 11 - 2
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessTreatPlan.java

@@ -4,9 +4,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.lantone.qc.kernel.structure.ai.model.EntityEnum;
 import com.lantone.qc.kernel.structure.ai.model.EntityEnum;
 import com.lantone.qc.kernel.structure.ai.model.Lemma;
 import com.lantone.qc.kernel.structure.ai.model.Lemma;
 import com.lantone.qc.pub.model.entity.*;
 import com.lantone.qc.pub.model.entity.*;
-import com.lantone.qc.pub.model.label.MaritalLabel;
 import com.lantone.qc.pub.model.label.TreatPlanLabel;
 import com.lantone.qc.pub.model.label.TreatPlanLabel;
 
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -19,7 +19,7 @@ public class EntityProcessTreatPlan extends EntityProcess {
     public TreatPlanLabel extractEntity(JSONObject aiOut) {
     public TreatPlanLabel extractEntity(JSONObject aiOut) {
         TreatPlanLabel treatPlanLabel = new TreatPlanLabel();
         TreatPlanLabel treatPlanLabel = new TreatPlanLabel();
         //护理级别
         //护理级别
-        List<Lemma> nursingLevelLemmas = createEntityTree(aiOut, EntityEnum.NURSINGLEVEL.toString());
+        List<Lemma> nursingLevelLemmas = createEntityTree(aiOut, EntityEnum.NURSING_LEVEL.toString());
         for (Lemma lemma :nursingLevelLemmas) {
         for (Lemma lemma :nursingLevelLemmas) {
             NursingLevel nursingLevel = new NursingLevel();
             NursingLevel nursingLevel = new NursingLevel();
             nursingLevel.setName(lemma.getText());
             nursingLevel.setName(lemma.getText());
@@ -32,6 +32,15 @@ public class EntityProcessTreatPlan extends EntityProcess {
             medicine.setName(lemma.getText());
             medicine.setName(lemma.getText());
             treatPlanLabel.setMedicine(medicine);
             treatPlanLabel.setMedicine(medicine);
         }
         }
+        //治疗或治疗目的
+        List<Lemma> treatLemmas = createEntityTree(aiOut, EntityEnum.TREAT_MENT.toString());
+        List<Treat> treats = new ArrayList<>();
+        for (Lemma lemma :treatLemmas) {
+            Treat treat = new Treat();
+            treat.setName(lemma.getText());
+            treats.add(treat);
+        }
+        treatPlanLabel.setTreat(treats);
         return treatPlanLabel;
         return treatPlanLabel;
     }
     }
 }
 }

+ 5 - 0
public/src/main/java/com/lantone/qc/pub/model/label/TreatPlanLabel.java

@@ -2,9 +2,13 @@ package com.lantone.qc.pub.model.label;
 
 
 import com.lantone.qc.pub.model.entity.Medicine;
 import com.lantone.qc.pub.model.entity.Medicine;
 import com.lantone.qc.pub.model.entity.NursingLevel;
 import com.lantone.qc.pub.model.entity.NursingLevel;
+import com.lantone.qc.pub.model.entity.Treat;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
 /**
  * @ClassName : TreatPlanLabel
  * @ClassName : TreatPlanLabel
  * @Description : 诊疗计划
  * @Description : 诊疗计划
@@ -16,4 +20,5 @@ import lombok.Setter;
 public class TreatPlanLabel extends GeneralLabel {
 public class TreatPlanLabel extends GeneralLabel {
     private NursingLevel nursingLevel;//护理级别
     private NursingLevel nursingLevel;//护理级别
     private Medicine medicine;//药品
     private Medicine medicine;//药品
+    private List<Treat> treat = new ArrayList<>();//治疗或治疗目的
 }
 }