Kaynağa Gözat

crf测试地址需在正式环境之前改回

chengyao 4 yıl önce
ebeveyn
işleme
a1e875a288

+ 1 - 1
config-center/src/main/resources/shared/structureCenter-dev.yml

@@ -3,7 +3,7 @@ swagger.des: 数据后结构化服务
 swagger.version: 0.0.1-SNAPSHOT
 
 CRF:
-  url: http://192.168.2.234:3457/api/mr_info_ex/entity_predict
+  url: http://192.168.2.234:1111/api/mr_info_ex/entity_predict
 
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity

+ 1 - 1
config-center/src/main/resources/shared/structureCenter-local.yml

@@ -3,7 +3,7 @@ swagger.des: 数据后结构化服务
 swagger.version: 0.0.1-SNAPSHOT
 
 CRF:
-  url: http://192.168.2.234:3457/api/mr_info_ex/entity_predict
+  url: http://192.168.2.234:1111/api/mr_info_ex/entity_predict
 
 Similarity:
   url: http://192.168.2.234:3456/api/mr_info_ex/similarity

+ 10 - 7
structure-center/src/main/java/com/lantone/structure/ai/OperationAI.java

@@ -36,7 +36,7 @@ public class OperationAI extends ModelAI {
     /**
      *
      */
-    public static List<String> medicalTextType = Arrays.asList("CourseAfterOperation_cx", "CourseRecordSRR","Taizhou_pDiscussion_record");
+    public static List<String> medicalTextType = Arrays.asList("CourseAfterOperation_cx", "CourseRecordSRR","Taizhou_before_surgery");
     public static String entityRelationObject = "entity_relation_object";
     public static String outputs = "outputs";
     public static String content = "content";
@@ -52,9 +52,12 @@ public class OperationAI extends ModelAI {
                 Map<String, String> structureMap = preoperativeDiscussionDoc.getStructureMap();
                 String text = preoperativeDiscussionDoc.getText();
                 //部位
-                String opName = "拟实施手术及操作名称:"+structureMap.get("拟实施手术及操作名称");
+
                 StringBuffer sb = new StringBuffer();
-                putContent(crfContent, medicalTextType.get(2),opName,Content.surgicalSite);
+                if(StringUtil.isNotEmpty(structureMap.get("拟实施手术及操作名称"))){
+                    String opName = "拟实施手术及操作名称:"+structureMap.get("拟实施手术及操作名称");
+                    putContent(crfContent, medicalTextType.get(2),opName,Content.surgicalSite);
+                }
                 //手术禁忌 = 手术指征 || 术前准备
                 //手术禁忌 = 诊断依据 || 术前准备 || "药物、食物过敏史
                 String opFlag = structureMap.get("手术指征");
@@ -79,8 +82,8 @@ public class OperationAI extends ModelAI {
 
                 if(StringUtil.isNotEmpty(sb.toString())){
                     text = sb.toString();
+                    putContent(crfContent, medicalTextType.get(2),text,Content.preoperativeDiscussion);
                 }
-                putContent(crfContent, medicalTextType.get(2),text,Content.preoperativeDiscussion);
             }
             if (operationDocs.get(i).getOperationRecordDoc() != null) {
                 OperationRecordDoc operationRecordDoc = operationDocs.get(i).getOperationRecordDoc();
@@ -109,9 +112,9 @@ public class OperationAI extends ModelAI {
             if (midData.get(Content.surgicalSite) == null) {
                 continue;
             }
-            putPreoperativeDiscussionCrfData(midData.getJSONObject(Content.preoperativeDiscussion),inputInfo,Content.preoperativeDiscussion);
+            putPreoperativeDiscussionCrfData(midData.getJSONObject(Content.preoperativeDiscussion),inputInfo);
             PreoperativeDiscussionLabel preoperativeDiscussionLabel = inputInfo.getOperationDocs().get(0).getPreoperativeDiscussionDoc().getPreoperativeDiscussionLabel();
-            putPreoperativeDiscussionCrfData(midData.getJSONObject(Content.surgicalSite),inputInfo,Content.surgicalSite);
+            putPreoperativeDiscussionCrfData(midData.getJSONObject(Content.surgicalSite),inputInfo);
             PreoperativeDiscussionLabel preoperativeDiscussionLabelRe = inputInfo.getOperationDocs().get(0).getPreoperativeDiscussionDoc().getPreoperativeDiscussionLabel();
             preoperativeDiscussionLabel.setOpBottomName(preoperativeDiscussionLabelRe.getOpBottomName());
             inputInfo.getOperationDocs().get(0).getPreoperativeDiscussionDoc().setPreoperativeDiscussionLabel(preoperativeDiscussionLabel);
@@ -204,7 +207,7 @@ public class OperationAI extends ModelAI {
      *
      * @param jsonObject
      */
-    public void putPreoperativeDiscussionCrfData(JSONObject jsonObject,InputInfo inputInfo,String name) {
+    public void putPreoperativeDiscussionCrfData(JSONObject jsonObject,InputInfo inputInfo) {
         if (jsonObject == null) {
             return;
         }

+ 16 - 16
structure-center/src/main/java/com/lantone/structure/facade/tran/PreoperativeDiscussionTran.java

@@ -50,14 +50,16 @@ public class PreoperativeDiscussionTran extends TargetTran {
         Map<String, String> sourceMap = Maps.newHashMap();
         List<String> titles = CommonAnalysisUtil.sortTitles(
                 Lists.newArrayList("简要病情","药物、食物过敏史","月经史","一般情况","入院后辅助检查","术前诊断","手术指征","手术禁忌",
-                        "拟实施手术名称","手术方式","拟实施麻醉方式","术前准备","防范措施","手术审批医师","医师签名"),
+                        "拟实施手术名称","手术方式","拟实施麻醉方式","术前准备","其他术前相关情况","防范措施","手术审批医师","医师签名"),
                 text
         );
         CommonAnalysisUtil.cutByTitles(text, titles, 0, sourceMap);
-        if( sourceMap.containsKey("术前诊断") || sourceMap.containsKey("月经史")|| sourceMap.containsKey("一般情况")){
+        if( sourceMap.containsKey("术前诊断") || sourceMap.containsKey("月经史")|| sourceMap.containsKey("其他术前相关情况")
+                || sourceMap.containsKey("一般情况")){
             sourceMap.remove("术前诊断");
             sourceMap.remove("月经史");
             sourceMap.remove("一般情况");
+            sourceMap.remove("其他术前相关情况");
         }
         return sourceMap;
     }
@@ -87,6 +89,7 @@ public class PreoperativeDiscussionTran extends TargetTran {
             "防范措施=手术要点",
             "主持人总结=讨论结论",
             "讨论摘要=讨论意见",
+            "手术审批医师=手术者签名",
             "药物、食物过敏史=过敏史"
     );
 
@@ -137,19 +140,16 @@ public class PreoperativeDiscussionTran extends TargetTran {
 
         //手术指征
         if(text.contains("手术指征:")) {
-            StringBuffer sb = new StringBuffer();
             String opration = text.substring(text.indexOf("手术指征:") + 5);
-            if(text.contains("拟实施手术名称")){
+            if(opration.contains("拟实施手术名称")){
                    opration = opration.substring(0,opration.indexOf("拟实施手术名称"));
             }
-            String[] split = opration.split("\n");
-            for (int i = 0; i < split.length; i++) {
-                if(  split[i].contains(".")){
-                    sb.append(split[i]);
-                }
+            if(opration.contains("主刀医生")){
+                opration = opration.substring(0,opration.indexOf("主刀医生"));
             }
-            if(StringUtil.isNotEmpty(sb.toString())){
-                retMap.put("手术指征",sb.toString());
+            String[] split = opration.split("\n");
+            if(StringUtil.isNotEmpty(split[0])){
+                retMap.put("手术指征",split[0]);
             }
         }
 
@@ -202,13 +202,12 @@ public class PreoperativeDiscussionTran extends TargetTran {
         //医师签名
         if(text.contains("医师签名:")) {
             String sign =  text.substring(text.indexOf("医师签名:")+5).trim();
-            String docSign = "";
             if(sign.contains("年") ||sign.contains( "-")){
                 String subStr= text.substring(text.indexOf("医师签名:")+5);
-                docSign = subStr.split("\n")[0].trim();
+                sign = subStr.split("\n")[0].trim();
             }
-            if(StringUtil.isNotEmpty(docSign)){
-                retMap.put("医师签名",docSign);
+            if(StringUtil.isNotEmpty(sign)){
+                retMap.put("医师签名",sign);
             }else{
                 retMap.remove("医师签名");
             }
@@ -343,7 +342,8 @@ public class PreoperativeDiscussionTran extends TargetTran {
 
     public static void lastSovle(List<OperationDoc> operationDocs , Map<String,String> rep) {
         if(!operationDocs.isEmpty() && operationDocs.get(0)!=null && operationDocs.get(0)
-                .getPreoperativeDiscussionDoc()!=null){
+                .getPreoperativeDiscussionDoc()!=null&& operationDocs.get(0)
+                .getPreoperativeDiscussionDoc().getPreoperativeDiscussionLabel()!=null){
             PreoperativeDiscussionDoc preoperativeDiscussionDoc = operationDocs.get(0).getPreoperativeDiscussionDoc();
             String allergyRecord = preoperativeDiscussionDoc.getPreoperativeDiscussionLabel().getAllergyRecord();
             String opBottomName = preoperativeDiscussionDoc.getPreoperativeDiscussionLabel().getOpBottomName();