|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 获取药品商品名称列表
|
|
|
*/
|