Ver código fonte

日常病程录

chengyao 4 anos atrás
pai
commit
25d83d0536

+ 4 - 8
structure-center/src/main/java/com/lantone/structure/ai/FirstCourseRecordAI.java

@@ -33,7 +33,7 @@ public class FirstCourseRecordAI extends ModelAI {
      *
      */
     public static List<String> medicalTextType = Arrays.asList("FirstCoursera_cx", "Diagnoses_cx"
-            , "FirstCourseTreatment_cx", "CourseRecordSRR","Taizhou_before_surgery");
+            , "FirstCourseTreatment_cx", "CourseRecordSRR","Taizhou_daily_record");
     public static String entityRelationObject = "entity_relation_object";
     public static String outputs = "outputs";
     public static String content = "content";
@@ -46,13 +46,9 @@ public class FirstCourseRecordAI extends ModelAI {
             DailyCourseRecordDoc dailyCourseRecordDoc = dailyCourseRecordDocs.get(0);
             if (dailyCourseRecordDoc != null) {
                 String text = dailyCourseRecordDoc.getText();
-                if(text.contains("医嘱")){
-                    //title记得改!!!!Taizhou_before_surgery
-                    text = text.substring(text.indexOf("医嘱"),text.lastIndexOf(""));
-                    putContent(crfContent, medicalTextType.get(4), text, Content.doctorAdviceRecord);
-                    JSONObject midData = loadAI(crfContent, crfServiceClient);//crf返回数据
-                    dailyCourseRecordCrfData(midData.getJSONObject(Content.doctorAdviceRecord), inputInfo);
-                }
+                putContent(crfContent, medicalTextType.get(4), text, Content.doctorAdviceRecord);
+                JSONObject midData = loadAI(crfContent, crfServiceClient);//crf返回数据
+                dailyCourseRecordCrfData(midData.getJSONObject(Content.doctorAdviceRecord), inputInfo);
             }
         }
         FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();

+ 1 - 1
structure-center/src/main/java/com/lantone/structure/ai/model/EntityEnum.java

@@ -41,7 +41,7 @@ public enum EntityEnum {
     CORD_AROUND_BODY("脐带绕身"), UTERINE_WALL_SUTURE("子宫壁缝合情况"), UC_AGENT("宫缩剂名称"), UC_CONSUMPTION("宫缩剂用量"), UC_USAGE_WARD_ROUND("宫缩剂用法"),
     UTERINE_CAVITY_ABNORMITY("宫腔探查异常情况描述"), UTERINE_CAVITY_DISPOSE("宫腔探查处理情况"), PUERPERA_CONDITION("手术时产妇情况"), HEMORRHAGE("术中出血"),
     FLUID_INFUSION("补液"),BLOOD_PRESSURE("血压情况"), NEWBORN("新生儿"), APGAR_SCORE("Apgar评分"), SCORE("分数"), CAPUT_SUCCEDANEUM("产瘤"),
-    CAPUT_SUCCEDANEUM_PART("产瘤部位"), OPE_DRUG("手术用药名称"), OPE_CONSUMPTION("手术用药量"), OPE_USAGE_WARD_ROUND("手术用药方法"), TRANSFUSION("输血成分"), DOCTORADVICE_RECORD("医嘱内容"), ASSESSMENTPLAN("诊疗计划"),ALLERGYRECORD("过敏史"),OPCONTRAINDICATION("手术禁忌"),OPBOTTOMNAME("手术目标部位"),DOCTORADVICERECORD("医嘱信息");
+    CAPUT_SUCCEDANEUM_PART("产瘤部位"), OPE_DRUG("手术用药名称"), OPE_CONSUMPTION("手术用药量"), OPE_USAGE_WARD_ROUND("手术用药方法"), TRANSFUSION("输血成分"), DOCTORADVICE_RECORD("医嘱内容"), ASSESSMENTPLAN("诊疗计划"),ALLERGYRECORD("过敏史"),OPCONTRAINDICATION("手术禁忌"),OPBOTTOMNAME("手术目标部位"),STOPNOW("停止"),CONTINUE("继续"),REPATE("复查"),OTHERREPATE("其他复查");
 
 
     private String value;

+ 96 - 8
structure-center/src/main/java/com/lantone/structure/ai/process/EntityDailyCourseRecord.java

@@ -2,6 +2,7 @@ package com.lantone.structure.ai.process;
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.lantone.common.util.ListUtil;
 import com.lantone.structure.ai.model.EntityEnum;
 import com.lantone.structure.ai.model.Lemma;
 import com.lantone.structure.model.label.DailyCourseRecordLabel;
@@ -22,18 +23,105 @@ public class EntityDailyCourseRecord extends EntityProcess {
 
             //医嘱信息
             StringBuffer sb = new StringBuffer();
-            int doctorAdvice = 0;
-            List<Lemma> doctorAdviceRecord = createEntityTree(aiOut, EntityEnum.DOCTORADVICERECORD.toString());
-            for (Lemma lemma : doctorAdviceRecord) {
-                doctorAdvice++;
-                if(doctorAdviceRecord.size()>1){
-                    sb.append(doctorAdvice+lemma.getText()+" ");
+            String drugNames = "",laboratorys,auxoiliarys;
+            //药品
+            List<Lemma> drugName = createEntityTree(aiOut, EntityEnum.DRUG_NAME.toString());
+            if(ListUtil.isNotEmpty(drugName)){
+                sb.append("药品:");
+            }
+            for (Lemma lemma : drugName) {
+                String text = lemma.getText();
+                if (lemma.isHaveChildren()) {
+                    for (Lemma relationLemmaRec : lemma.getRelationLemmas()) {
+                        if (relationLemmaRec.getProperty().equals(EntityEnum.STOPNOW.toString())) {
+                            drugNames = relationLemmaRec.getText()+text;
+                            sb.append(drugNames+"、");
+                        }
+                        if (relationLemmaRec.getProperty().equals(EntityEnum.CONTINUE.toString())) {
+                            drugNames = relationLemmaRec.getText()+text;
+                            sb.append(drugNames+"、");
+                        }
+                    }
+                }
+            }
+            //实验室检查
+            String str = sb.toString();
+           if(str.endsWith("、")){
+                sb.deleteCharAt(str.length()-1);
+           }
+            List<Lemma> laboratory = createEntityTree(aiOut, EntityEnum.LABORATORY.toString());
+            if(ListUtil.isNotEmpty(laboratory)){
+                sb.append("  实验室检查:");
+            }
+            for (Lemma lemma : laboratory) {
+                String text = lemma.getText();
+                if (lemma.isHaveChildren()) {
+                    for (Lemma relationLemmaRec : lemma.getRelationLemmas()) {
+                        if (relationLemmaRec.getProperty().equals(EntityEnum.REPATE.toString())) {
+                            laboratorys = relationLemmaRec.getText()+text;
+                            sb.append(laboratorys+"、");
+                        }
+                        if (relationLemmaRec.getProperty().equals(EntityEnum.OTHERREPATE.toString())) {
+                            laboratorys = relationLemmaRec.getText()+text;
+                            sb.append(laboratorys+"、");
+                        }
+                    }
                 }else{
-                    sb.append(lemma.getText());
+                    sb.append(text+" ");
                 }
             }
+            //辅助检查
+             str = sb.toString();
+            if(str.endsWith("、")){
+                sb.deleteCharAt(str.length()-1);
+            }
+            List<Lemma> auxoiliary = createEntityTree(aiOut, EntityEnum.AUXILIARY_EXAMINATION.toString());
+            if(ListUtil.isNotEmpty(auxoiliary)){
+                sb.append("  辅助检查:");
+            }
+            for (Lemma lemma : auxoiliary) {
+                String text = lemma.getText();
+                if (lemma.isHaveChildren()) {
+                    for (Lemma relationLemmaRec : lemma.getRelationLemmas()) {
+                        if (relationLemmaRec.getProperty().equals(EntityEnum.REPATE.toString())) {
+                            auxoiliarys = relationLemmaRec.getText()+text;
+                            sb.append(auxoiliarys+"、");
+                        }
+                        if (relationLemmaRec.getProperty().equals(EntityEnum.OTHERREPATE.toString())) {
+                            auxoiliarys = relationLemmaRec.getText()+text;
+                            sb.append(auxoiliarys+"、");
+                        }
+                    }
+                }else{
+                    sb.append(text+" ");
+                }
+            }
+            str = sb.toString();
+            if(str.endsWith("、")){
+                sb.deleteCharAt(str.length()-1);
+            }
+            //手术名称
+            List<Lemma> operation = createEntityTree(aiOut, EntityEnum.OPERATION.toString());
+            if(ListUtil.isNotEmpty(operation)){
+                sb.append("手术名称:");
+            }
+            for (Lemma lemma : operation) {
+                String text = lemma.getText();
+                sb.append(text+" ");
+            }
             dailyCourseRecordLabel.setDoctorAdviceRecord(sb.toString());
-        } catch (Exception e) {
+            //停止
+          //  List<Lemma> stop = createEntityTree(aiOut, EntityEnum.STOPNOW.toString());
+            //继续
+          //  List<Lemma> continues = createEntityTree(aiOut, EntityEnum.CONTINUE.toString());
+            //复查
+           // List<Lemma> repate = createEntityTree(aiOut, EntityEnum.REPATE.toString());
+            //其他复查
+           // List<Lemma> otherRepate = createEntityTree(aiOut, EntityEnum.OTHERREPATE.toString());
+
+
+
+        }catch (Exception e) {
             e.printStackTrace();
             logger.error(e.getMessage(), e);
         }

+ 6 - 6
structure-center/src/main/java/com/lantone/structure/facade/StructureFacade.java

@@ -56,9 +56,9 @@ public class StructureFacade {
             case "疑难病例讨论记录":
                 targetTran = new DifficultCaseDiscussTran();
                 break;
-            /*case "上级医师查房记录":
+            case "上级医师查房记录":
                 targetTran = new ThreeLevelWardTran();
-                break;*/
+                break;
             case "入院记录":
                 targetTran = new BeHospitalizedTran();
                 break;
@@ -89,18 +89,18 @@ public class StructureFacade {
             case "特殊检查及特殊治疗同意书":
                 targetTran = new SpecialCureConsentDocTran();
                 break;
-            /*case "一般手术记录":
+            case "一般手术记录":
                 targetTran = new OperationRecordDocTran();
-                break;*/
+                break;
             case "术前讨论":
                 targetTran = new PreoperativeDiscussionTran();
                 break;
             case "术后首次病程记录":
                 targetTran = new OperationDiscussionTran();
                 break;
-           /* case "日常病程记录":
+            case "日常病程记录":
                 targetTran = new DailyCourseRecordTran();
-                break;*/
+                break;
             default:
                 break;
         }

+ 1 - 2
structure-center/src/main/java/com/lantone/structure/facade/tran/BeHospitalizedTran.java

@@ -914,11 +914,10 @@ public class BeHospitalizedTran extends TargetTran {
                                 count++;
                                 sb.append(count+"."+name);
                             }
-
                         }
                      }
                     if(StringUtil.isNotEmpty(sb.toString())&&StringUtil.isNotEmpty(sbx.toString())){
-                        rep.put(rocordName,sbx.toString()+";"+sb.toString());
+                        rep.put(rocordName,sbx.toString()+"; "+sb.toString());
                     }else{
                         if(StringUtil.isNotEmpty(sb.toString())){
                             rep.put(rocordName,sb.toString());