|
@@ -0,0 +1,275 @@
|
|
|
+package com.diagbot.repository;
|
|
|
+
|
|
|
+import com.diagbot.dto.*;
|
|
|
+import com.diagbot.entity.node.*;
|
|
|
+import com.diagbot.util.NeoUtil;
|
|
|
+import com.sun.xml.internal.bind.v2.runtime.reflect.opt.Const;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+public class MedicineCodeNode {
|
|
|
+
|
|
|
+
|
|
|
+ public DrugBillNeoDTO MedicinetoDrugDTO(MedCodeName medcode) {
|
|
|
+ DrugBillNeoDTO drugBillNeoDTO = new DrugBillNeoDTO();
|
|
|
+ NodeInfo nodeInfo = new NodeInfo();
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedClass> medClass = medcode.getMedclasss();
|
|
|
+ for (MedClass medCls : medClass) {
|
|
|
+ NodeNeoDTO ageNeoDTO = new NodeNeoDTO();
|
|
|
+ nodeInfo.setName(medCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medcate);
|
|
|
+ drugBillNeoDTO.setAgeNeoDTO(ageNeoDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedRegName> medRegNames = medcode.getMedregnames();
|
|
|
+ for (MedRegName medRegName : medRegNames) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medRegName.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medregname);
|
|
|
+ drugBillNeoDTO.getClinicfindings().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<Medicine> medicines = medcode.getMedicines();
|
|
|
+ for (Medicine medicine : medicines) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medicine.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medicine);
|
|
|
+ drugBillNeoDTO.getVitals().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedChemClass> medChemClasses = medcode.getMedchemclass();
|
|
|
+ for (MedChemClass medChemCls : medChemClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medChemCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medhuaxue);
|
|
|
+ drugBillNeoDTO.getLis().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedYaoLiClass> medYaoLiClasses = medcode.getMedyaoliclass();
|
|
|
+ for (MedYaoLiClass medYaoLiCls : medYaoLiClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medYaoLiCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medyaoli);
|
|
|
+ drugBillNeoDTO.getPacs().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedZhiLiaoClass> medZhiLiaoClasses = medcode.getMedzhiliaoclass();
|
|
|
+ for (MedZhiLiaoClass medZhiLiaoCls : medZhiLiaoClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medZhiLiaoCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medzhiliao);
|
|
|
+ drugBillNeoDTO.getAllergicmeds().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedJiePouClass> medJiePouClasses = medcode.getMedjiepouclass();
|
|
|
+ for (MedJiePouClass medJiePouCls : medJiePouClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medJiePouCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medjiepou);
|
|
|
+ drugBillNeoDTO.getOperations().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedCode> medCodes = medcode.getMedcodes();
|
|
|
+ for (MedCode medCode : medCodes) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medCode.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medcode);
|
|
|
+ drugBillNeoDTO.getProcedures().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedProdName> medProdNames = medcode.getMedprodnames();
|
|
|
+ for (MedProdName medProdName : medProdNames) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medProdName.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medprodname);
|
|
|
+ drugBillNeoDTO.getDisease().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<MedYiBaoClass> medYiBaoClasses = medcode.getMedyibaoclass();
|
|
|
+ for (MedYiBaoClass medYiBaoCls : medYiBaoClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(medYiBaoCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.medyibaocate);
|
|
|
+ drugBillNeoDTO.getGroup().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<RegName> regNames = medcode.getRegnames();
|
|
|
+ for (RegName regName : regNames) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(regName.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.regname);
|
|
|
+ drugBillNeoDTO.getConflictmeds().add(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<HerbFangJiCate> herbFangJiCates = medcode.getHerbfangjicates();
|
|
|
+ for (HerbFangJiCate herbFangJiCate : herbFangJiCates) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(herbFangJiCate.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.herbfangjicate);
|
|
|
+ drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<HerbFangJiClass> herbFangJiClass = medcode.getHerbfangjiclass();
|
|
|
+ for (HerbFangJiClass herbFangJiCls : herbFangJiClass) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(herbFangJiCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.herbfangjiclass);
|
|
|
+ drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<HerbZhiLiaoClass> herbZhiLiaoClasses = medcode.getHerbzhiliaoclass();
|
|
|
+ for (HerbZhiLiaoClass herbZhiLiaoCls : herbZhiLiaoClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(herbZhiLiaoCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.herbzhiliaocate);
|
|
|
+ drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<HerbDeptClass> herbDeptClasses = medcode.getHerbdeptclass();
|
|
|
+ for (HerbDeptClass herbDeptCls : herbDeptClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(herbDeptCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.herbdeptcate);
|
|
|
+ drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<HerbYiBaoClass> herbYiBaoClasses = medcode.getHerbyibaoclass();
|
|
|
+ for (HerbYiBaoClass herbYiBaoCls : herbYiBaoClasses) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(herbYiBaoCls.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.herbyibaocate);
|
|
|
+ drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Set<ProdName> prodNames = medcode.getProdnames();
|
|
|
+ for (ProdName prodName : prodNames) {
|
|
|
+ nodeInfo = new NodeInfo();
|
|
|
+ nodeInfo.setName(prodName.getName());
|
|
|
+ nodeInfo.setTypeval(Constants.prodname);
|
|
|
+ drugBillNeoDTO.setGender(NeoUtil.updateNodeInfo(nodeInfo));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return drugBillNeoDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理处方开单合理性
|
|
|
+ */
|
|
|
+ public List<BillNeoDTO> getDrugBill(Map<String, String> medsterm, MedicineCodeRepository medicineRepository) {
|
|
|
+ List<BillNeoDTO> billNeoDTOs = new ArrayList<>();
|
|
|
+ BillNeoDTO billNeoDTO;
|
|
|
+
|
|
|
+ DrugBillNeoDTO drugBillNeoDTO;
|
|
|
+
|
|
|
+ List<MedCodeName> 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));
|
|
|
+
|
|
|
+ billNeoDTO.setDrugBillNeoDTO(drugBillNeoDTO);
|
|
|
+
|
|
|
+ billNeoDTOs.add(billNeoDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return billNeoDTOs;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取药品商品名称列表
|
|
|
+ */
|
|
|
+ public List<DrugInfoDTO> getMedicineList(String name, MedicineCodeRepository medicineRepository) {
|
|
|
+ String nodename;
|
|
|
+
|
|
|
+ List<DrugInfoDTO> medslist = new ArrayList<>();
|
|
|
+ DrugInfoDTO drugInfoDTO;
|
|
|
+
|
|
|
+ List<MedCodeName> medicines = medicineRepository.findByNameLike("*"+name+"*");
|
|
|
+
|
|
|
+ for (MedCodeName med : medicines) {
|
|
|
+ drugInfoDTO = new DrugInfoDTO();
|
|
|
+ nodename = med.getName();
|
|
|
+
|
|
|
+ drugInfoDTO.setName(nodename);
|
|
|
+ medslist.add(drugInfoDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return medslist;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取高危药品数据
|
|
|
+ */
|
|
|
+ public List<HighRiskNeoDTO> getHighRiskDrug(Map<String, String> drugsterm, MedicineCodeRepository medicineRepository) {
|
|
|
+ List<HighRiskNeoDTO> highRiskNeoDTOS = new ArrayList<>();
|
|
|
+ HighRiskNeoDTO highRiskNeoDTO;
|
|
|
+ String drugname;
|
|
|
+ List<Medicine> medicine;
|
|
|
+ Medicine med;
|
|
|
+/*
|
|
|
+ for (String term : drugsterm.keySet()) {
|
|
|
+ highRiskNeoDTO = new HighRiskNeoDTO();
|
|
|
+
|
|
|
+ drugname = drugsterm.get(term);
|
|
|
+ highRiskNeoDTO.setName(term);
|
|
|
+ highRiskNeoDTO.setStandname(drugname);
|
|
|
+
|
|
|
+ medicine = medicineRepository.findByNameIs(drugname);
|
|
|
+
|
|
|
+ if (null != medicine && medicine.size()>0) {
|
|
|
+ med = medicine.get(0);
|
|
|
+
|
|
|
+ if (null!=med.getRisklevel() && med.getRisklevel().trim().length()>0) {
|
|
|
+ highRiskNeoDTO.setIsHighrisk(true);
|
|
|
+ highRiskNeoDTO.setType("药品");
|
|
|
+ highRiskNeoDTOS.add(highRiskNeoDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+*/
|
|
|
+ return highRiskNeoDTOS;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|