Jelajahi Sumber

Merge branch 'master' into innerDevelop

zhoutg 4 tahun lalu
induk
melakukan
b7d278fdbd

+ 1 - 1
src/main/java/com/diagbot/entity/node/YiBaoDiseaseName.java

@@ -34,7 +34,7 @@ public class YiBaoDiseaseName extends BaseNode  {
 	private Set<YiBaoDiseaseNamePathwayName> yiBaoDiseaseNamePathwaynames = new HashSet<>();
 
 	@Relationship(type = "医保疾病名称相关症状", direction = Relationship.OUTGOING)
-//	private Set<YiBaoDiseaseNameSymptom> yiBaoDiseaseNameSymptoms = new HashSet<>();
+	private Set<YiBaoDiseaseNameSymptom> yiBaoDiseaseNameSymptoms = new HashSet<>();
 	private Set<Symptom> Symptoms = new HashSet<>();
 
 	@Relationship(type = "医保疾病名称相关体征", direction = Relationship.OUTGOING)

+ 1 - 1
src/main/java/com/diagbot/entity/relationship/YiBaoDiseaseNameSymptom.java

@@ -7,7 +7,7 @@ import lombok.Getter;
 import lombok.Setter;
 import org.neo4j.ogm.annotation.*;
 
-@Deprecated
+//@Deprecated
 @Getter
 @Setter@RelationshipEntity(type = "医保疾病名称相关症状")
 public class YiBaoDiseaseNameSymptom extends BaseRelation {

+ 5 - 2
src/main/java/com/diagbot/facade/NeoFacade.java

@@ -9,6 +9,7 @@ import com.diagbot.dto.*;
 import com.diagbot.entity.DiseaseInfo;
 import com.diagbot.entity.DiseaseProperty;
 import com.diagbot.entity.node.LisRemind;
+import com.diagbot.entity.node.YiBaoDiseaseName;
 import com.diagbot.entity.relationship.LisRemindMedicine;
 import com.diagbot.entity.relationship.LisRemindYiBaoDiseaseName;
 import com.diagbot.enums.RedisEnum;
@@ -838,14 +839,16 @@ public class NeoFacade {
         YiBaoDiseaseNode icdDiseaseNode = new YiBaoDiseaseNode();
         String term;
         term = neoPushVO.getDiagVo().getDiags().get(0).getName();
-        /*List<YiBaoDiseaseName> yiBaoName = yiBaoDiseaseRepository.findByNameIs(term);
+        List<YiBaoDiseaseName> yiBaoName = yiBaoDiseaseRepository.findByNameIs(term);
+
         YiBaoDiseaseName icdDisease = null;
         if (ListUtil.isNotEmpty(yiBaoName)) {
             icdDisease = yiBaoName.get(0);
         }
         if (icdDisease != null) {
+            icdDisease = NeoUtil.extract_node(icdDisease);
             pushDTO = icdDiseaseNode.YiBaoDiseasetoDiseaseDTO(icdDisease, neoPushVO);
-        }*/
+        }
         pushDTO = this.reverseInfo(term);
 
         return pushDTO;

+ 152 - 145
src/main/java/com/diagbot/facade/TestFacade.java

@@ -24,6 +24,7 @@ import io.github.lvyahui8.spring.facade.DataFacade;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.web.multipart.MultipartFile;
@@ -786,183 +787,189 @@ public class TestFacade {
                 operation.add(item);
             }
             indicationPushVO.setOperation(operation);*/
-           //年龄
+            //年龄
             IndicationPushVO indicationPushVOAge = new IndicationPushVO();
-            String[] split = bean.getAgeAll().split(",");
-            setname(indicationPushVOAge,bean);
-            indicationPushVOAge.setAgeNum(getValueNum(split));
-            indicationPushVOAge.setMsg("年龄:"+(int) getValueNum(split)+operationNameMsg);
-            indicationPushVOAge.setRuleType("3");
-            indicationPushVOAge.setIdNum(bean.getIdNum());
-            indicationPushVOList.add(indicationPushVOAge);
-
-           //体格
+            String ageAll = bean.getAgeAll();
+            if (StringUtil.isNotBlank(ageAll)) {
+                String[] split = ageAll.split(",");
+                setname(indicationPushVOAge, bean);
+                indicationPushVOAge.setAgeNum(getValueNum(split));
+                indicationPushVOAge.setMsg("年龄:" + (int) getValueNum(split) + operationNameMsg);
+                indicationPushVOAge.setRuleType("3");
+                indicationPushVOAge.setIdNum(bean.getIdNum());
+                indicationPushVOList.add(indicationPushVOAge);
+            }
+            //体格
             String physique = bean.getPhysique();
-            String[] physiqueStrArray = physique.split(",");
-            for (int i = 0;i<physiqueStrArray.length;i++) {
-                String str = physiqueStrArray[i];
-                if(testLineVO.isGetOne()){
-                    int sum = getRandomNum(physiqueStrArray.length);
-                    str =physiqueStrArray[sum];
-                }
-                IndicationPushVO indphysiquePushVO = new IndicationPushVO();
-                setname(indphysiquePushVO,bean);
-                StringBuffer sbVital = new StringBuffer();
-                String[] vitalArr = str.split(",");
-                if (vitalArr.length > 1) {
-                    if ("收缩压".equals(vitalArr[0].trim()) || "舒张压".equals(vitalArr[0].trim())) {
-                        if ("收缩压".equals(vitalArr[0].trim())) {
-                            sbVital.append("血压");
-                            sbVital.append(getValue(vitalArr) + "/100mmHg");
-                            indphysiquePushVO.setIdNum(bean.getIdNum());
-                            indphysiquePushVO.setRuleType("3");
-                            indphysiquePushVO.setMsg("体格:" + sbVital+"=="+operationNameMsg);
-                            indphysiquePushVO.setVital(sbVital.toString());
-                            indicationPushVOList.add(indphysiquePushVO);
-                        } else if ("舒张压".equals(vitalArr[0])) {
-
-                            sbVital.append("血压");
-                            sbVital.append("100/" + getValue(vitalArr) + "mmHg");
+            if (StringUtil.isNotBlank(physique)) {
+                String[] physiqueStrArray = physique.split(",");
+                for (int i = 0; i < physiqueStrArray.length; i++) {
+                    String str = physiqueStrArray[i];
+                    if (testLineVO.isGetOne()) {
+                        int sum = getRandomNum(physiqueStrArray.length);
+                        str = physiqueStrArray[sum];
+                    }
+                    IndicationPushVO indphysiquePushVO = new IndicationPushVO();
+                    setname(indphysiquePushVO, bean);
+                    StringBuffer sbVital = new StringBuffer();
+                    String[] vitalArr = str.split(",");
+                    if (vitalArr.length > 1) {
+                        if ("收缩压".equals(vitalArr[0].trim()) || "舒张压".equals(vitalArr[0].trim())) {
+                            if ("收缩压".equals(vitalArr[0].trim())) {
+                                sbVital.append("血压");
+                                sbVital.append(getValue(vitalArr) + "/100mmHg");
+                                indphysiquePushVO.setIdNum(bean.getIdNum());
+                                indphysiquePushVO.setRuleType("3");
+                                indphysiquePushVO.setMsg("体格:" + sbVital + "==" + operationNameMsg);
+                                indphysiquePushVO.setVital(sbVital.toString());
+                                indicationPushVOList.add(indphysiquePushVO);
+                            } else if ("舒张压".equals(vitalArr[0])) {
+
+                                sbVital.append("血压");
+                                sbVital.append("100/" + getValue(vitalArr) + "mmHg");
+                                indphysiquePushVO.setIdNum(bean.getIdNum());
+                                indphysiquePushVO.setRuleType("3");
+                                indphysiquePushVO.setMsg("体格:" + sbVital + "==" + operationNameMsg);
+                                indphysiquePushVO.setVital(sbVital.toString());
+                                indicationPushVOList.add(indphysiquePushVO);
+                            }
+                        } else {
+                            // 其他数值类型
+                            sbVital.append(vitalArr[0]);
+                            sbVital.append(getValue(vitalArr));
+                            sbVital.append(vitalArr[3]);
                             indphysiquePushVO.setIdNum(bean.getIdNum());
                             indphysiquePushVO.setRuleType("3");
-                            indphysiquePushVO.setMsg("体格:" + sbVital+"=="+operationNameMsg);
+                            indphysiquePushVO.setMsg("体格:" + sbVital + "==" + operationNameMsg);
                             indphysiquePushVO.setVital(sbVital.toString());
                             indicationPushVOList.add(indphysiquePushVO);
                         }
                     } else {
-                        // 其他数值类型
                         sbVital.append(vitalArr[0]);
-                        sbVital.append(getValue(vitalArr));
-                        sbVital.append(vitalArr[3]);
                         indphysiquePushVO.setIdNum(bean.getIdNum());
                         indphysiquePushVO.setRuleType("3");
-                        indphysiquePushVO.setMsg("体格:" + sbVital+"=="+operationNameMsg);
+                        indphysiquePushVO.setMsg("体格:" + sbVital + "==" + operationNameMsg);
                         indphysiquePushVO.setVital(sbVital.toString());
                         indicationPushVOList.add(indphysiquePushVO);
                     }
-                } else {
-                    sbVital.append(vitalArr[0]);
-                    indphysiquePushVO.setIdNum(bean.getIdNum());
-                    indphysiquePushVO.setRuleType("3");
-                    indphysiquePushVO.setMsg("体格:" + sbVital+"=="+operationNameMsg);
-                    indphysiquePushVO.setVital(sbVital.toString());
-                    indicationPushVOList.add(indphysiquePushVO);
-                }
-                if(testLineVO.isGetOne()){
-                    break;
+                    if (testLineVO.isGetOne()) {
+                        break;
+                    }
                 }
             }
-
-           //化验
+            //化验
             String lisAll = bean.getLisAll();
-            String[] physiquelisAll = lisAll.split(",");
-            for (int i = 0;i<physiquelisAll.length;i++) {
-
-                String str = physiquelisAll[i];
-                if(testLineVO.isGetOne()){
-                    int sum = getRandomNum(physiquelisAll.length);
-                    str =physiquelisAll[sum];
-                }
-                IndicationPushVO indicationPushVOlisList = new IndicationPushVO();
-                setname(indicationPushVOlisList,bean);
-                List<Lis> lisList = new ArrayList<>();
-                if (str.contains(",")) {
-                    //包含英文逗号
-                    String[] strArray = str.split(",");
-                    if(strArray.length>2) {
-                        Lis lisBean = new Lis();
-                        lisBean.setUniqueName(strArray[0].trim());
-                        lisBean.setName(strArray[0].trim());
-                        lisBean.setDetailName(strArray[0].trim());
-                        lisBean.setValue(getValue(strArray));
-                        lisList.add(lisBean);
-                        indicationPushVOlisList.setIdNum(bean.getIdNum());
-                        indicationPushVOlisList.setRuleType("3");
-                        indicationPushVOlisList.setMsg("化验" + strArray[0].trim() + "==" + operationNameMsg);
-                        indicationPushVOlisList.setLis(lisList);
-                        indicationPushVOList.add(indicationPushVOlisList);
-                    }else {
-                        Lis lisBean = new Lis();
-                        lisBean.setUniqueName(strArray[0].trim());
-                        lisBean.setName(strArray[0]);
-                        lisBean.setDetailName(strArray[0].trim());
-                        lisBean.setOtherValue(strArray[1].trim());
-                        lisList.add(lisBean);
-                        indicationPushVOlisList.setIdNum(bean.getIdNum());
-                        indicationPushVOlisList.setRuleType("3");
-                        indicationPushVOlisList.setMsg("化验:" + strArray[0].trim() + "==" + operationNameMsg);
-                        indicationPushVOlisList.setLis(lisList);
-                        indicationPushVOList.add(indicationPushVOlisList);
+            if(StringUtil.isNotBlank(lisAll)) {
+                String[] physiquelisAll = lisAll.split(",");
+                for (int i = 0; i < physiquelisAll.length; i++) {
+
+                    String str = physiquelisAll[i];
+                    if (testLineVO.isGetOne()) {
+                        int sum = getRandomNum(physiquelisAll.length);
+                        str = physiquelisAll[sum];
+                    }
+                    IndicationPushVO indicationPushVOlisList = new IndicationPushVO();
+                    setname(indicationPushVOlisList, bean);
+                    List<Lis> lisList = new ArrayList<>();
+                    if (str.contains(",")) {
+                        //包含英文逗号
+                        String[] strArray = str.split(",");
+                        if (strArray.length > 2) {
+                            Lis lisBean = new Lis();
+                            lisBean.setUniqueName(strArray[0].trim());
+                            lisBean.setName(strArray[0].trim());
+                            lisBean.setDetailName(strArray[0].trim());
+                            lisBean.setValue(getValue(strArray));
+                            lisList.add(lisBean);
+                            indicationPushVOlisList.setIdNum(bean.getIdNum());
+                            indicationPushVOlisList.setRuleType("3");
+                            indicationPushVOlisList.setMsg("化验" + strArray[0].trim() + "==" + operationNameMsg);
+                            indicationPushVOlisList.setLis(lisList);
+                            indicationPushVOList.add(indicationPushVOlisList);
+                        } else {
+                            Lis lisBean = new Lis();
+                            lisBean.setUniqueName(strArray[0].trim());
+                            lisBean.setName(strArray[0]);
+                            lisBean.setDetailName(strArray[0].trim());
+                            lisBean.setOtherValue(strArray[1].trim());
+                            lisList.add(lisBean);
+                            indicationPushVOlisList.setIdNum(bean.getIdNum());
+                            indicationPushVOlisList.setRuleType("3");
+                            indicationPushVOlisList.setMsg("化验:" + strArray[0].trim() + "==" + operationNameMsg);
+                            indicationPushVOlisList.setLis(lisList);
+                            indicationPushVOList.add(indicationPushVOlisList);
+                        }
+                    }
+                    if (testLineVO.isGetOne()) {
+                        break;
                     }
-                }
-                if(testLineVO.isGetOne()){
-                    break;
                 }
             }
-
             //辅检
             String pacsAll = bean.getPacsAll();
-            String[] physiquepacsAll = pacsAll.split(",");
-            //indicationPushVO.setSymptom(pacsAll);
+            if (StringUtil.isNotBlank(pacsAll)) {
+                String[] physiquepacsAll = pacsAll.split(",");
+                //indicationPushVO.setSymptom(pacsAll);
 
-            for (int i = 0;i<physiquepacsAll.length;i++) {
+                for (int i = 0; i < physiquepacsAll.length; i++) {
 
-                String pacsStr = physiquepacsAll[i];
-                if(testLineVO.isGetOne()){
-                    int sum = getRandomNum(physiquepacsAll.length);
-                    pacsStr =physiquepacsAll[sum];
-                }
-                IndicationPushVO indicationPushVOpacs = new IndicationPushVO();
-                setname(indicationPushVOpacs,bean);
-                List<Pacs> pacs = new ArrayList<>();
-                Pacs pacs1 = new Pacs();
-                pacs1.setUniqueName("腹部CT");
-                pacs1.setName("腹部CT");
-                pacs1.setResult(pacsStr.trim());
-                pacs.add(pacs1);
-                indicationPushVOpacs.setIdNum(bean.getIdNum());
-                indicationPushVOpacs.setRuleType("3");
-                indicationPushVOpacs.setMsg("辅检:"+pacsStr+"=="+operationNameMsg);
-                indicationPushVOpacs.setPacs(pacs);
-                indicationPushVOpacs.setSymptom(pacsAll);
-                indicationPushVOList.add(indicationPushVOpacs);
-                if(testLineVO.isGetOne()){
-                    break;
+                    String pacsStr = physiquepacsAll[i];
+                    if (testLineVO.isGetOne()) {
+                        int sum = getRandomNum(physiquepacsAll.length);
+                        pacsStr = physiquepacsAll[sum];
+                    }
+                    IndicationPushVO indicationPushVOpacs = new IndicationPushVO();
+                    setname(indicationPushVOpacs, bean);
+                    List<Pacs> pacs = new ArrayList<>();
+                    Pacs pacs1 = new Pacs();
+                    pacs1.setUniqueName("腹部CT");
+                    pacs1.setName("腹部CT");
+                    pacs1.setResult(pacsStr.trim());
+                    pacs.add(pacs1);
+                    indicationPushVOpacs.setIdNum(bean.getIdNum());
+                    indicationPushVOpacs.setRuleType("3");
+                    indicationPushVOpacs.setMsg("辅检:" + pacsStr + "==" + operationNameMsg);
+                    indicationPushVOpacs.setPacs(pacs);
+                    indicationPushVOpacs.setSymptom(pacsAll);
+                    indicationPushVOList.add(indicationPushVOpacs);
+                    if (testLineVO.isGetOne()) {
+                        break;
+                    }
                 }
             }
-
-           //诊断"腹部CT"
+            //诊断"腹部CT"
             String disease = bean.getDisease();
-            String[] physiquedisease = disease.split(",");
+            if (StringUtil.isNotBlank(disease)) {
+                String[] physiquedisease = disease.split(",");
 
-            for (int i = 0;i<physiquedisease.length;i++) {
+                for (int i = 0; i < physiquedisease.length; i++) {
 
-                String diseaseStr = physiquedisease[i];
-                if(testLineVO.isGetOne()){
-                    int sum = getRandomNum(physiquelisAll.length);
-                    diseaseStr =physiquedisease[sum];
-                }
-                IndicationPushVO indicationPushVOpacs = new IndicationPushVO();
-                setname(indicationPushVOpacs,bean);
-                List<Item> diag = new ArrayList<>();
-                Item item = new Item();
-                item.setUniqueName(diseaseStr.trim());
-                item.setName(diseaseStr.trim());
-                diag.add(item);
-                indicationPushVOpacs.setMsg("诊断:"+diseaseStr+"=="+operationNameMsg);
-                indicationPushVOpacs.setDiag(diag);
-                indicationPushVOpacs.setIdNum(bean.getIdNum());
-                indicationPushVOpacs.setRuleType("3");
-                indicationPushVOList.add(indicationPushVOpacs);
-                if(testLineVO.isGetOne()){
-                    break;
+                    String diseaseStr = physiquedisease[i];
+                    if (testLineVO.isGetOne()) {
+                        int sum = getRandomNum(physiquedisease.length);
+                        diseaseStr = physiquedisease[sum];
+                    }
+                    IndicationPushVO indicationPushVOpacs = new IndicationPushVO();
+                    setname(indicationPushVOpacs, bean);
+                    List<Item> diag = new ArrayList<>();
+                    Item item = new Item();
+                    item.setUniqueName(diseaseStr.trim());
+                    item.setName(diseaseStr.trim());
+                    diag.add(item);
+                    indicationPushVOpacs.setMsg("诊断:" + diseaseStr + "==" + operationNameMsg);
+                    indicationPushVOpacs.setDiag(diag);
+                    indicationPushVOpacs.setIdNum(bean.getIdNum());
+                    indicationPushVOpacs.setRuleType("3");
+                    indicationPushVOList.add(indicationPushVOpacs);
+                    if (testLineVO.isGetOne()) {
+                        break;
+                    }
                 }
+                //List<Item> operationOrder = new ArrayList<>();
+                // setname(indicationPushVO,bean);
+                //  indicationPushVOList.add(indicationPushVO);
             }
-            //List<Item> operationOrder = new ArrayList<>();
-            // setname(indicationPushVO,bean);
-            //  indicationPushVOList.add(indicationPushVO);
         }
-
         Map<String, Object> map = getDebugMapMulti(indicationPushVOList, "3", start);
         return map;
     }

+ 2 - 2
src/main/java/com/diagbot/rule/GroupRule.java

@@ -75,7 +75,7 @@ public class GroupRule {
                     break;
                 case "幼儿":
                     if (age != null) {
-                        if (age <= 2.5D) {
+                        if (age < 6.0D && 1.0D <= age) {
                             BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(
                                     billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),
                                     "幼儿", type, billNeoMaxDTO.getType());
@@ -85,7 +85,7 @@ public class GroupRule {
                     break;
                 case "儿童":
                     if (age != null) {
-                        if (age <= 15.0D && age > 2.5D) {
+                        if (age < 18.0D && age >= 6.0D) {
                             BillMsg commonBillMsg = MsgUtil.getCommonBillMsg(
                                     billNeoMaxDTO.getOrderName(), billNeoMaxDTO.getOrderStandName(),
                                     "儿童", type, billNeoMaxDTO.getType());

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

@@ -5,6 +5,7 @@ import com.diagbot.dto.NodeNeoDTO;
 import com.diagbot.dto.PushBaseDTO;
 import com.diagbot.entity.node.Vital;
 import com.diagbot.entity.node.YiBaoDiseaseName;
+import com.diagbot.entity.relationship.YiBaoDiseaseNameSymptom;
 import com.diagbot.entity.relationship.base.BaseRelation;
 import com.diagbot.model.entity.PD;
 import com.diagbot.repository.Constants;
@@ -256,6 +257,17 @@ public class NeoUtil {
         }
     }
 
+
+    public static YiBaoDiseaseName extract_node(YiBaoDiseaseName yiBaoDiseaseName) {
+        for (YiBaoDiseaseNameSymptom symptom : yiBaoDiseaseName.getYiBaoDiseaseNameSymptoms()) {
+            if (isExist(symptom)) {
+                yiBaoDiseaseName.getSymptoms().add(symptom.getSymptom());
+            }
+        }
+
+        return yiBaoDiseaseName;
+    }
+
     public static void main(String[] args) {
         PD pd = new PD();
         pd.setValue("两月");