zhoutg 4 лет назад
Родитель
Сommit
4a4e145d00

+ 87 - 83
src/main/java/com/diagbot/facade/TestwordInfoFacade.java

@@ -115,88 +115,92 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
                 String text = bean.getText();
                 String type = bean.getType();
                 SearchData searchData = new SearchData();
-                switch (type) {
-                    case "主诉":
-                    case "现病史":
-                        searchData.setSymptom(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 临床表现
-                        CoreUtil.addSet(symptomList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getClinicals()));
-                        // 诊断
-                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
-                        // 药品
-                        CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getMedicines()));
-                        // 手术
-                        CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getOperations()));
-                        // 化验
-                        CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
-                        CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
-                        // 辅检
-                        CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
-                        break;
-                    case "既往史":
-                        searchData.setPasts(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 诊断
-                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPastLabel().getDiags()));
-                        // 药品
-                        CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPastLabel().getMedicines()));
-                        // 手术
-                        CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPastLabel().getOperations()));
-                        break;
-                    case "出院医嘱":
-                        searchData.setPasts(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 药品
-                        CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPastLabel().getMedicines()));
-                        break;
-                    case "专科体格检查":
-                        searchData.setVital(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 查体
-                        CoreUtil.addSet(vitalList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getVitals()));
-                        CoreUtil.addSet(vitalList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getClinicals()));
-                        break;
-                    case "辅助检查":
-                        searchData.setSymptom(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 化验
-                        CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
-                        CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
-                        // 辅检
-                        CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
-                        break;
-                    case "实验室检查":
-                        searchData.setSymptom(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 化验
-                        CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
-                        CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
-                        break;
-                    case "影像学检查":
-                        searchData.setSymptom(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 辅检
-                        CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
-                        break;
-                    case "初步诊断":
-                    case "修正诊断":
-                    case "术前诊断":
-                    case "术后诊断":
-                    case "术中诊断":
-                    case "出院诊断":
-                    case "补充诊断":
-                        searchData.setDiagString(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 诊断
-                        CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getDiag()));
-                        break;
-                    case "手术名称":
-                        searchData.setPasts(text);
-                        wordCrfDTO = commonFacade.crf_process(searchData);
-                        // 手术
-                        CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPastLabel().getOperations()));
-                        break;
+                try {
+                    switch (type) {
+                        case "主诉":
+                        case "现病史":
+                            searchData.setSymptom(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 临床表现
+                            CoreUtil.addSet(symptomList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getClinicals()));
+                            // 诊断
+                            CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getDiags()));
+                            // 药品
+                            CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getMedicines()));
+                            // 手术
+                            CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPresentLabel().getOperations()));
+                            // 化验
+                            CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
+                            CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
+                            // 辅检
+                            CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
+                            break;
+                        case "既往史":
+                            searchData.setPasts(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 诊断
+                            CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getPastLabel().getDiags()));
+                            // 药品
+                            CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPastLabel().getMedicines()));
+                            // 手术
+                            CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPastLabel().getOperations()));
+                            break;
+                        case "出院医嘱":
+                            searchData.setPasts(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 药品
+                            CoreUtil.addSet(drugList, CoreUtil.getName(wordCrfDTO.getPastLabel().getMedicines()));
+                            break;
+                        case "专科体格检查":
+                            searchData.setVital(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 查体
+                            CoreUtil.addSet(vitalList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getVitals()));
+                            CoreUtil.addSet(vitalList, CoreUtil.getName(wordCrfDTO.getVitalLabel().getClinicals()));
+                            break;
+                        case "辅助检查":
+                            searchData.setSymptom(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 化验
+                            CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
+                            CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
+                            // 辅检
+                            CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
+                            break;
+                        case "实验室检查":
+                            searchData.setSymptom(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 化验
+                            CoreUtil.addSet(lisList, CoreUtil.getName(wordCrfDTO.getLis()));
+                            CoreUtil.addSet(lisList, getDetail(wordCrfDTO.getLis()));
+                            break;
+                        case "影像学检查":
+                            searchData.setSymptom(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 辅检
+                            CoreUtil.addSet(pacsResList, CoreUtil.getName(wordCrfDTO.getPacsLabel().getRes()));
+                            break;
+                        case "初步诊断":
+                        case "修正诊断":
+                        case "术前诊断":
+                        case "术后诊断":
+                        case "术中诊断":
+                        case "出院诊断":
+                        case "补充诊断":
+                            searchData.setDiagString(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 诊断
+                            CoreUtil.addSet(diseaseList, CoreUtil.getName(wordCrfDTO.getDiag()));
+                            break;
+                        case "手术名称":
+                            searchData.setPasts(text);
+                            wordCrfDTO = commonFacade.crf_process(searchData);
+                            // 手术
+                            CoreUtil.addSet(operateList, CoreUtil.getName(wordCrfDTO.getPastLabel().getOperations()));
+                            break;
+                    }
+                } catch (Exception e) {
+                    log.error("主键【" + bean.getId() + "】," + e);
                 }
             }
 
@@ -233,7 +237,7 @@ public class TestwordInfoFacade extends TestwordInfoServiceImpl {
         long mid = System.currentTimeMillis();
         res.put("提词耗时", (mid - start) / 1000.0 + "秒");
         // 提词后同义词转换
-        wordConvert();
+        // wordConvert();
         long end = System.currentTimeMillis();
         res.put("同义词转换耗时", (end - mid) / 1000.0 + "秒");
         return res;

+ 38 - 36
src/main/java/com/diagbot/model/ai/BeHospitalizedAI.java

@@ -652,42 +652,44 @@ public class BeHospitalizedAI extends ModelAI {
             } else if ("R".equals(vi.getName().toUpperCase())) {
                 vi.setStandName("呼吸");
             } else if ("血压".equals(vi.getName()) || "BP".equals(vi.getName().toUpperCase())) {
-                String bpName = vi.getPd().getName();
-                Pattern pattern = Pattern.compile("\\d+/\\d+"); // 示例:血压80/44mmHg
-                Matcher matcher = pattern.matcher(bpName);
-
-                if (matcher.find()) {
-                    String val = matcher.group();
-                    vi.getPd().setValue(val);  // 重新赋值血压的数值
-                    vi.getPd().setUnit(bpName.substring(bpName.indexOf(val) + 1));   // 重新赋值血压的单位
-
-                    String[] bp = val.split("/");
-
-                    List<Usual> usualList = new ArrayList<>();
-                    Usual usualSbp = new Usual();
-                    usualSbp.setName(vi.getName());
-                    usualSbp.setStandName("收缩压");
-                    usualSbp.setValue(bp[0]);
-                    usualList.add(usualSbp);
-                    vi.setUsualList(usualList);
-
-                    Usual usualDbp = new Usual();
-                    usualDbp.setName(vi.getName());
-                    usualDbp.setStandName("舒张压");
-                    usualDbp.setValue(bp[1]);
-                    usualList.add(usualDbp);
-
-                    // PD sbp = new PD(); // 收缩压
-                    // sbp.setValue(bp[0]);
-                    // sbp.setName("收缩压");
-                    // sbp.setStandName("收缩压");
-                    // vitalLabel.setSbp(sbp);
-
-                    // PD dbp = new PD(); // 舒张压
-                    // dbp.setValue(bp[1]);
-                    // dbp.setName("舒张压");
-                    // dbp.setStandName("舒张压");
-                    // vitalLabel.setDbp(dbp);
+                if (vi.getPd() != null) {
+                    String bpName = vi.getPd().getName();
+                    Pattern pattern = Pattern.compile("\\d+/\\d+"); // 示例:血压80/44mmHg
+                    Matcher matcher = pattern.matcher(bpName);
+
+                    if (matcher.find()) {
+                        String val = matcher.group();
+                        vi.getPd().setValue(val);  // 重新赋值血压的数值
+                        vi.getPd().setUnit(bpName.substring(bpName.indexOf(val) + 1));   // 重新赋值血压的单位
+
+                        String[] bp = val.split("/");
+
+                        List<Usual> usualList = new ArrayList<>();
+                        Usual usualSbp = new Usual();
+                        usualSbp.setName(vi.getName());
+                        usualSbp.setStandName("收缩压");
+                        usualSbp.setValue(bp[0]);
+                        usualList.add(usualSbp);
+                        vi.setUsualList(usualList);
+
+                        Usual usualDbp = new Usual();
+                        usualDbp.setName(vi.getName());
+                        usualDbp.setStandName("舒张压");
+                        usualDbp.setValue(bp[1]);
+                        usualList.add(usualDbp);
+
+                        // PD sbp = new PD(); // 收缩压
+                        // sbp.setValue(bp[0]);
+                        // sbp.setName("收缩压");
+                        // sbp.setStandName("收缩压");
+                        // vitalLabel.setSbp(sbp);
+
+                        // PD dbp = new PD(); // 舒张压
+                        // dbp.setValue(bp[1]);
+                        // dbp.setName("舒张压");
+                        // dbp.setStandName("舒张压");
+                        // vitalLabel.setDbp(dbp);
+                    }
                 }
             }
         }