|
@@ -1,13 +1,17 @@
|
|
|
package com.diagbot.repository;
|
|
|
|
|
|
+import com.diagbot.dto.BillNeoDTO;
|
|
|
+import com.diagbot.dto.DrugBillNeoDTO;
|
|
|
import com.diagbot.dto.HighRiskNeoDTO;
|
|
|
-import com.diagbot.entity.node.MedCodeName;
|
|
|
-import com.diagbot.entity.node.MedRegName;
|
|
|
-import com.diagbot.entity.node.Medicine;
|
|
|
+import com.diagbot.dto.NodeNeoDTO;
|
|
|
+import com.diagbot.entity.node.*;
|
|
|
import com.diagbot.vo.Drug;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
|
|
|
public class MedRegNameNode {
|
|
@@ -69,5 +73,103 @@ public class MedRegNameNode {
|
|
|
return highRiskNeoDTOS;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public DrugBillNeoDTO MedicinetoDrugDTO(MedRegName medicine, MedRegNameRepository medRegNameRepository) {
|
|
|
+ DrugBillNeoDTO drugBillNeoDTO = new DrugBillNeoDTO();
|
|
|
+
|
|
|
+ Set<Age> ages = medicine.getAge();
|
|
|
+ for (Age age : ages) {
|
|
|
+ NodeNeoDTO nodeNeoDTO = fillNodeNeoDTO(age);
|
|
|
+ drugBillNeoDTO.setAgeNeoDTO(nodeNeoDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<Group> groups = medicine.getGroup();
|
|
|
+ for (Group group : groups) {
|
|
|
+ NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
|
|
|
+ nodeNeoDTO.setName(group.getName());
|
|
|
+ nodeNeoDTO.setTermtype(Constants.group);
|
|
|
+ drugBillNeoDTO.getGroup().add(nodeNeoDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedAllergen> medAllergens = medicine.getMedAllergens();
|
|
|
+ for (MedAllergen medAllergen : medAllergens) {
|
|
|
+ NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
|
|
|
+ nodeNeoDTO.setName(medAllergen.getName());
|
|
|
+ nodeNeoDTO.setTermtype(Constants.medallergen);
|
|
|
+ drugBillNeoDTO.getAllergicmeds().add(nodeNeoDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<Disease> diseases = medicine.getDisease();
|
|
|
+ for (Disease disease : diseases) {
|
|
|
+ NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
|
|
|
+ nodeNeoDTO.setName(disease.getName());
|
|
|
+ nodeNeoDTO.setTermtype(Constants.disease);
|
|
|
+ drugBillNeoDTO.getDisease().add(nodeNeoDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ return drugBillNeoDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public NodeNeoDTO fillNodeNeoDTO(Age age) {
|
|
|
+ NodeNeoDTO nodeNeoDTO = new NodeNeoDTO();
|
|
|
+ Integer range;
|
|
|
+ BigDecimal max, min;
|
|
|
+
|
|
|
+ nodeNeoDTO.setName(age.getName());
|
|
|
+
|
|
|
+ max = (age.getMaxval()==null)?null:new BigDecimal(age.getMaxval());
|
|
|
+ nodeNeoDTO.setMax(max);
|
|
|
+
|
|
|
+ min = (age.getMinval()==null)?null:new BigDecimal(age.getMinval());
|
|
|
+ nodeNeoDTO.setMin(min);
|
|
|
+
|
|
|
+ range = (age.getRange()==null)?0:age.getRange();
|
|
|
+ nodeNeoDTO.setValType(range);
|
|
|
+
|
|
|
+ nodeNeoDTO.setName(age.getTermname());
|
|
|
+
|
|
|
+ return nodeNeoDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理处方开单合理性
|
|
|
+ */
|
|
|
+ public List<BillNeoDTO> getMedicineBill(Map<String, String> medsterm, MedRegNameRepository medRegNameRepository) {
|
|
|
+ List<BillNeoDTO> billNeoDTOs = new ArrayList<>();
|
|
|
+ BillNeoDTO billNeoDTO;
|
|
|
+
|
|
|
+ DrugBillNeoDTO drugBillNeoDTO;
|
|
|
+
|
|
|
+ List<MedRegName> 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 = medRegNameRepository.findByNameIs(medname);
|
|
|
+
|
|
|
+ if (medicine != null && medicine.size() > 0) {
|
|
|
+ drugBillNeoDTO = MedicinetoDrugDTO(medicine.get(0), medRegNameRepository);
|
|
|
+
|
|
|
+ billNeoDTO.setDrugBillNeoDTO(drugBillNeoDTO);
|
|
|
+
|
|
|
+ billNeoDTOs.add(billNeoDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return billNeoDTOs;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|