Преглед изворни кода

Revert "更新药品开单合理性的方法"

This reverts commit 10b7c773
MarkHuang пре 4 година
родитељ
комит
f440dd6a33

+ 2 - 5
src/main/java/com/diagbot/entity/node/Age.java

@@ -25,10 +25,7 @@ public class Age extends BaseNode  {
 	@Property(name = "范围")
 	private Integer range;
 
-	@Property(name = "名称")
-	private String termname;
-
-	@Relationship(type = "药品注册名称禁忌年龄", direction = Relationship.INCOMING)
-	private Set<MedRegName> medRegNames = new HashSet<>();
+	@Relationship(type = "药品通用名称禁忌年龄", direction = Relationship.INCOMING)
+	private Set<Medicine> medicine = new HashSet<>();
 
 }

+ 104 - 0
src/main/java/com/diagbot/repository/MedicineNode.java

@@ -11,6 +11,110 @@ import java.util.*;
 public class MedicineNode {
 
 
+    public DrugBillNeoDTO MedicinetoDrugDTO(Medicine medicine, MedicineRepository medicineRepository) {
+        DrugBillNeoDTO drugBillNeoDTO = new DrugBillNeoDTO();
+        NodeInfo nodeInfo = new NodeInfo();
+
+        Set<Age> ages = medicine.getAge();
+        for (Age age : ages) {
+            NodeNeoDTO nodeNeoDTO = fillNodeNeoDTO(age, medicineRepository.getKeys());
+            drugBillNeoDTO.setAgeNeoDTO(nodeNeoDTO);
+        }
+
+        Set<Group> groups = medicine.getGroup();
+        for (Group group : groups) {
+            NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+            nodeInfo.setName(group.getName());
+            nodeInfo.setTypeval(Constants.group);
+            drugBillNeoDTO.getGroup().add(nodeNeoDTO);
+        }
+
+
+        Set<MedAllergen> medAllergens = medicine.getMedAllergens();
+        for (MedAllergen medAllergen : medAllergens) {
+            NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+            nodeInfo.setName(medAllergen.getName());
+            nodeInfo.setTypeval(Constants.medallergen);
+            drugBillNeoDTO.getAllergicmeds().add(nodeNeoDTO);
+        }
+
+
+        Set<Disease> diseases = medicine.getDisease();
+        for (Disease disease : diseases) {
+            NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+            nodeInfo.setName(disease.getName());
+            nodeInfo.setTypeval(Constants.disease);
+            drugBillNeoDTO.getDisease().add(nodeNeoDTO);
+        }
+
+        return drugBillNeoDTO;
+    }
+
+
+    public NodeNeoDTO fillNodeNeoDTO(Age age, List<String> keys) {
+        NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
+        Integer range;
+        BigDecimal max, min;
+
+        nodeNeoDTO.setName(age.getName());
+        for (String key : keys) {
+            switch (key) {
+                case "最大值":
+                    max = (age.getMaxval()==null)?null:new BigDecimal(age.getMaxval());
+                    nodeNeoDTO.setMax(max);
+                    break;
+                case "最小值":
+                    min = (age.getMinval()==null)?null:new BigDecimal(age.getMinval());
+                    nodeNeoDTO.setMin(min);
+                    break;
+                case "范围":
+                    range = (age.getRange()==null)?0:age.getRange();
+                    nodeNeoDTO.setValType(range);
+                    break;
+            }
+        }
+
+        return nodeNeoDTO;
+    }
+
+
+
+    /**
+     * 处理处方开单合理性
+     */
+    public List<BillNeoDTO> getMedicineBill(Map<String, String> medsterm, MedicineRepository medicineRepository) {
+        List<BillNeoDTO> billNeoDTOs = new ArrayList<>();
+        BillNeoDTO billNeoDTO;
+
+        DrugBillNeoDTO drugBillNeoDTO;
+
+        List<Medicine> medicine;
+        String medname;
+
+        for (String term : medsterm.keySet()) {
+            billNeoDTO = new BillNeoDTO();
+            medname = medsterm.get(term);
+            billNeoDTO.setName(term);
+            billNeoDTO.setStandname(medname);
+
+            drugBillNeoDTO = new DrugBillNeoDTO();
+
+            medicine = medicineRepository.findByNameIs(medname);
+
+            if (medicine != null && medicine.size() > 0) {
+                drugBillNeoDTO = MedicinetoDrugDTO(medicine.get(0), medicineRepository);
+
+                billNeoDTO.setDrugBillNeoDTO(drugBillNeoDTO);
+
+                billNeoDTOs.add(billNeoDTO);
+            }
+        }
+
+
+        return billNeoDTOs;
+    }
+
+
     /**
      * 获取药品商品名称列表
      */