Просмотр исходного кода

Merge branch 'master' into innerDevelop

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

+ 2 - 2
src/main/java/com/diagbot/aggregate/IndicationTestAggregate.java

@@ -81,9 +81,9 @@ public class IndicationTestAggregate {
     public Map<String, Object> t3(@InvokeParameter("mapPath") Map<String, String> mapPath) {
         Map<String, Object> map = new LinkedHashMap<>();
 
-        MultipartFile file = testFacade.getMulFileByPath(mapPath.get("【高危手术】"));
+        MultipartFile file = testFacade.getMulFileByPath(mapPath.get("【高危手术整合】"));
         Map<String, Object> highOperationMap = testFacade.testHighRiskOperationExcel(file, new TestLineVO());
-        map.put("【高危手术】",highOperationMap);
+        map.put("【高危手术整合】",highOperationMap);
         return map;
     }
 

+ 7 - 6
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -312,7 +312,7 @@ public class NeoFacade {
             lises = lisPushVo.getLises();
         }
 
-        pushDis = pushDisBySpecialLis(age, sex, pd, lises, presentDiags);
+        pushDis = pushDisBySpecialLis(depts,age, sex, pd, lises, presentDiags);
         if (ListUtil.isNotEmpty(pushDis)) {
             return pushDis;
         }
@@ -324,7 +324,7 @@ public class NeoFacade {
         pushDisByLis(allDis, lises);
         //辅检推出的疾病
         pushDisByPacs(pushVO, allDis);
-        filterAndSort(pushDis, allDis, sex, age, pd);
+        filterAndSort(pushDis, allDis, sex, age, pd,depts);
         pushDis = addDiagFromPresent(pushDis, presentDiags);
 
         return pushDis;
@@ -339,14 +339,14 @@ public class NeoFacade {
      * @param lises
      * @return
      */
-    private List<String> pushDisBySpecialLis(Double age, Integer sex, PD pd, List<Lis> lises, List<String> presentDiags) {
+    private List<String> pushDisBySpecialLis(List<String> depts, Double age, Integer sex, PD pd, List<Lis> lises, List<String> presentDiags) {
         List<String> neoPushDTOS = new ArrayList<>();
         if (ListUtil.isNotEmpty(lises)) {
             List<String> lis_dis = lises.parallelStream()
                     .map(x -> nodeRepository.getDisByLis_Special(x.getName(), x.getUniqueName() + x.getResult()))
                     .flatMap(List::stream).collect(Collectors.toList());
             if (ListUtil.isNotEmpty(lis_dis)) {
-                filterAndSort(neoPushDTOS, lis_dis, sex, age, pd);
+                filterAndSort(neoPushDTOS, lis_dis, sex, age, pd, depts);
                 neoPushDTOS = addDiagFromPresent(neoPushDTOS, presentDiags);
             }
         }
@@ -448,14 +448,15 @@ public class NeoFacade {
         allDis.addAll(allDis_bySymptom);
     }
 
-    private void filterAndSort(List<String> dises, List<String> allDis, int gender_code, double age, PD pd) {
+    private void filterAndSort(List<String> dises, List<String> allDis, int gender_code, double age, PD pd, List<String> depts) {
         //推送出的所有疾病进行性别和年龄的过滤
         List<Map<String, String>> diseases = null;
         Map<String, Double> dis_fbl = new HashMap<>();
         if (ListUtil.isNotEmpty(allDis)) {
             //            diseases = redisUtil.get(allDis);
             diseases = redisUtil.geth(allDis);
-            allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd))
+            allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age) && NeoUtil.matchPds(x.get("name"), pd)
+            && NeoUtil.matchDept(x,depts))
                     //            allDis = diseases.stream().filter(x -> NeoUtil.matchBasic(x, gender_code, age))
                     .map(x -> x.get("name")).collect(Collectors.toList());
             diseases.forEach(x -> dis_fbl.put(x.get("name"), Double.parseDouble(x.get("fbl"))));

+ 9 - 9
src/main/java/com/diagbot/facade/TestFacade.java

@@ -449,7 +449,7 @@ public class TestFacade {
             Lis lis = new Lis();
             lis.setName("套餐");
             lis.setDetailName("明细");
-            lis.setUniqueName(bean.getOtherTipLisName());
+            lis.setUniqueName(bean.getLisGBName());
             lis.setValue(getValue(bean.getSymbol(), bean.getValue()));
             lisList.add(lis);
             indicationPushVO.setLis(lisList);
@@ -643,12 +643,12 @@ public class TestFacade {
                 List<Lis> lisDetail = new ArrayList<>();
                 Lis lisDetailBean = new Lis();
                 lisDetailBean.setName(bean.getCriticalMeal());
-                lisDetailBean.setDetailName(bean.getCriticalLis());
-                lisDetailBean.setUniqueName(bean.getCriticalLis());
+                lisDetailBean.setDetailName(bean.getLisGBName());
+                lisDetailBean.setUniqueName(bean.getLisGBName());
                 lisDetailBean.setValue(bean.getCriticalMin());
                 lisDetail.add(lisDetailBean);
                 copy.setLis(lisDetail);
-                copy.setMsg(bean.getCriticalLis() + "【低危急值】");
+                copy.setMsg(bean.getLisGBName() + "【低危急值】");
                 indicationPushVOList.add(copy);
             }
             if (bean.getCriticalMax() != null) {
@@ -657,12 +657,12 @@ public class TestFacade {
                 List<Lis> lisDetail = new ArrayList<>();
                 Lis lisDetailBean = new Lis();
                 lisDetailBean.setName(bean.getCriticalMeal());
-                lisDetailBean.setDetailName(bean.getCriticalLis());
-                lisDetailBean.setUniqueName(bean.getCriticalLis());
+                lisDetailBean.setDetailName(bean.getLisGBName());
+                lisDetailBean.setUniqueName(bean.getLisGBName());
                 lisDetailBean.setValue(bean.getCriticalMax());
                 lisDetail.add(lisDetailBean);
                 copy.setLis(lisDetail);
-                copy.setMsg(bean.getCriticalLis() + "【高危急值】");
+                copy.setMsg(bean.getLisGBName() + "【高危急值】");
                 indicationPushVOList.add(copy);
             }
         }
@@ -1121,12 +1121,12 @@ public class TestFacade {
         Map<String, Object> paramMap = new LinkedHashMap<>();
         Map<String, String> mapPath = new LinkedHashMap<>();
         mapPath.put("【危急值_化验】", path + File.separator + "【危急值_化验】.xlsx");
-        mapPath.put("【危急值_辅检】", path + File.separator + "【危急值_辅检】.xls");
+        mapPath.put("【危急值_辅检】", path + File.separator + "【危急值_辅检】.xlsx");
         mapPath.put("【其他值提醒_化验】", path + File.separator + "【其他值提醒_化验】.xlsx");
         mapPath.put("【其他值提醒_辅检】", path + File.separator + "【其他值提醒_辅检】.xlsx");
         mapPath.put("【其他值提醒_输血】", path + File.separator + "【其他值提醒_输血】.xlsx");
         mapPath.put("【高危药品】", path + File.separator + "【高危药品】.xlsx");
-        mapPath.put("【高危手术】", path + File.separator + "【高危手术】.xlsx");
+        mapPath.put("【高危手术整合】", path + File.separator + "【高危手术整合】.xlsx");
         mapPath.put("【开单合理性】", path + File.separator + "【开单合理性】.xlsx");
         mapPath.put("【开单合理性_输血】", path + File.separator + "【开单合理性_输血】.xlsx");
         paramMap.put("mapPath", mapPath);

+ 8 - 21
src/main/java/com/diagbot/model/ai/BeHospitalizedAI.java

@@ -7,22 +7,8 @@ import com.diagbot.dto.WordCrfDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.model.ai.process.*;
-import com.diagbot.model.entity.Diag;
-import com.diagbot.model.entity.GeneralDesc;
-import com.diagbot.model.entity.Lis;
-import com.diagbot.model.entity.Medicine;
-import com.diagbot.model.entity.Usual;
-import com.diagbot.model.entity.Vital;
-import com.diagbot.model.label.ChiefLabel;
-import com.diagbot.model.label.DiagLabel;
-import com.diagbot.model.label.FamilyLabel;
-import com.diagbot.model.label.MaritalLabel;
-import com.diagbot.model.label.MenstrualLabel;
-import com.diagbot.model.label.PacsLabel;
-import com.diagbot.model.label.PastLabel;
-import com.diagbot.model.label.PersonalLabel;
-import com.diagbot.model.label.PresentLabel;
-import com.diagbot.model.label.VitalLabel;
+import com.diagbot.model.entity.*;
+import com.diagbot.model.label.*;
 import com.diagbot.util.Content;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -716,16 +702,16 @@ public class BeHospitalizedAI extends ModelAI {
      * @param presentLabel
      */
     public List<Medicine> takeMedicine(PresentLabel presentLabel){
-        List<Medicine> takems = new ArrayList<>();
-        List<GeneralDesc> generals = presentLabel.getGenerals();
+//        List<Medicine> takems = new ArrayList<>();
+//        List<GeneralDesc> generals = presentLabel.getGenerals();
         List<Medicine> medicines = presentLabel.getMedicines();
-        if (generals.size() > 0) {
+        /*if (generals.size() > 0) {
             String presentText = presentLabel.getText();
             if (StringUtils.isNotBlank(presentText) && medicines != null && medicines.size() > 0) {
                 String lastGeneral = generals.get(generals.size() - 1).getName();
                 int lastGeneralIndex = presentText.lastIndexOf(lastGeneral);
                 for (Medicine medicine : medicines) {
-                    /* 现病史中一般情况之后的药品名称,并且不包含不详 */
+                    *//* 现病史中一般情况之后的药品名称,并且不包含不详 *//*
                     int medicine_index = presentText.indexOf(medicine.getName());
                     if (medicine_index > lastGeneralIndex && !medicine.getName().contains("不详")) {
                         takems.add(medicine);
@@ -733,6 +719,7 @@ public class BeHospitalizedAI extends ModelAI {
                 }
             }
         }
-        return takems;
+        return takems;*/
+        return medicines;
     }
 }

+ 0 - 15
src/main/java/com/diagbot/process/PushProcess.java

@@ -97,22 +97,15 @@ public class PushProcess {
 
     private void reversePushPackage(int length, PushDTO pushDTO, List<String> ruleTypeList, Map<String, List<String>> typeWords, NeoPushVO pushVO, Map<String, List<PushBaseDTO>> dis) {
         NeoPushDTO reversePush = neoFacade.getReversePush(pushVO);
-        //        if(ListUtil.isNotEmpty(reversePush)){
         // 症状
         if (ruleTypeList.contains("1")) {
             if (ListUtil.isNotEmpty(reversePush.getSymptoms())) {
                 List<String> symptoms = reversePush.getSymptoms().stream().map(x -> x.getName()).collect(Collectors.toList());
-                /*reversePush.stream().filter(x -> ListUtil.isNotEmpty(x.getSymptoms())).forEach(x -> {
-                    List<String> symptomList = x.getSymptoms().stream().map(y -> y.getName()).collect(Collectors.toList());
-                    symptoms.removeAll(symptomList);
-                    symptoms.addAll(symptomList);
-                });*/
                 if (symptoms.size() > 0) {
                     List<PushBaseDTO> filtervitals = getPackagePushBaseDTO(typeWords, symptoms, StandConvertEnum.symptom);
                     pushDTO.setSymptom(filtervitals.subList(0, filtervitals.size() >= length ? length : filtervitals.size()));
                 }
             }
-
         }
         // 查体
         if (ruleTypeList.contains("4")) {
@@ -123,7 +116,6 @@ public class PushProcess {
                     pushDTO.setVital(filtervitals.subList(0, filtervitals.size() >= length ? length : filtervitals.size()));
                 }
             }
-
         }
         // 化验
         if (ruleTypeList.contains("5")) {
@@ -134,7 +126,6 @@ public class PushProcess {
                     pushDTO.setLis(filterlis.subList(0, filterlis.size() >= length ? length : filterlis.size()));
                 }
             }
-
         }
         // 辅检
         if (ruleTypeList.contains("6")) {
@@ -145,12 +136,10 @@ public class PushProcess {
                     pushDTO.setPacs(filterpacs.subList(0, filterpacs.size() >= length ? length : filterpacs.size()));
                 }
             }
-
         }
         // 药品
         if (ruleTypeList.contains("8")) {
             if (reversePush.getTreat() != null && ListUtil.isNotEmpty(reversePush.getTreat().get(MedicalAdviceEnum.drug.getName()))) {
-
                 List<String> drugs = reversePush.getTreat().get(MedicalAdviceEnum.drug.getName()).stream().map(x -> x.getName()).collect(Collectors.toList());
                 /*reversePush.stream().filter(x ->x.getTreat() != null && ListUtil.isNotEmpty(x.getTreat().get(MedicalAdviceEnum.drug.getName())))
                         .forEach(x -> {
@@ -163,7 +152,6 @@ public class PushProcess {
                     pushDTO.setMedicines(filterdrugs.subList(0, filterdrugs.size() >= length ? length : filterdrugs.size()));
                 }
             }
-
         }
         // 手术
         if (ruleTypeList.contains("9")) {
@@ -187,7 +175,6 @@ public class PushProcess {
                     pushDTO.setDis(dis);
                 }
             }
-
         }
         if (ruleTypeList.contains("10") && pushVO.getDiaeaseName() != null) {
             List<TreatDTO> collect = new ArrayList<>();
@@ -198,8 +185,6 @@ public class PushProcess {
             collect.add(treatDTO);
             pushDTO.setTreat(collect);
         }
-        //        }
-        //            return pushDTO;
     }
 
     private List<PushBaseDTO> getPackagePushBaseDTO(Map<String, List<String>> typeWords, List<String> symptoms, StandConvertEnum symptom) {

+ 12 - 0
src/main/java/com/diagbot/util/NeoUtil.java

@@ -178,6 +178,18 @@ public class NeoUtil {
         return match;
     }
 
+    public static boolean matchDept(Map<String,String> disease, List<String> depts){
+        boolean match = true;
+        if(disease != null && ListUtil.isNotEmpty(depts)) {
+            String deptgender_neo4j = disease.get("dept");
+            if((depts.contains("妇科") && !deptgender_neo4j.equals("妇科"))
+            || (depts.contains("产科") && !deptgender_neo4j.equals("产科"))){
+                match = false;
+            }
+        }
+        return match;
+    }
+
     public static boolean matchPds(String disName, PD pd){
         boolean match = true;
         if(pd != null){

+ 1 - 3
src/main/java/com/diagbot/vo/TestIndicationVO.java

@@ -188,8 +188,6 @@ public class TestIndicationVO implements Serializable {
     private String transfusionNodeName;
     @Excel(name="实验室检查套餐")
     private String criticalMeal;
-    @Excel(name="实验室检查")
-    private String criticalLis;
     @Excel(name="低危急值")
     private Double criticalMin;
     @Excel(name="高危急值")
@@ -205,7 +203,7 @@ public class TestIndicationVO implements Serializable {
     @Excel(name="注册剂型")
     private String drugForm;
     @Excel(name="实验室检查名称")
-    private String otherTipLisName;
+    private String lisGBName;
     @Excel(name="比较符号")
     private String symbol;
     @Excel(name="数值")