|
@@ -6,26 +6,83 @@ import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.NeoUtil;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
public class MedicineNode {
|
|
|
|
|
|
|
|
|
- public DrugBillNeoDTO MedicinetoDrugDTO(Medicine medicine) {
|
|
|
+ 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> getDrugBill(Map<String, String> medsterm, MedicineRepository medicineRepository) {
|
|
|
+ public List<BillNeoDTO> getMedicineBill(Map<String, String> medsterm, MedicineRepository medicineRepository) {
|
|
|
List<BillNeoDTO> billNeoDTOs = new ArrayList<>();
|
|
|
BillNeoDTO billNeoDTO;
|
|
|
|
|
@@ -45,7 +102,7 @@ public class MedicineNode {
|
|
|
medicine = medicineRepository.findByNameIs(medname);
|
|
|
|
|
|
if (medicine != null && medicine.size() > 0) {
|
|
|
- drugBillNeoDTO = MedicinetoDrugDTO(medicine.get(0));
|
|
|
+ drugBillNeoDTO = MedicinetoDrugDTO(medicine.get(0), medicineRepository);
|
|
|
|
|
|
billNeoDTO.setDrugBillNeoDTO(drugBillNeoDTO);
|
|
|
|