|
@@ -0,0 +1,172 @@
|
|
|
+package com.diagbot.facade;
|
|
|
+
|
|
|
+import com.diagbot.biz.push.entity.Item;
|
|
|
+import com.diagbot.biz.push.entity.Lis;
|
|
|
+import com.diagbot.biz.push.entity.Pacs;
|
|
|
+import com.diagbot.entity.ResultBill;
|
|
|
+import com.diagbot.enums.LexiconEnum;
|
|
|
+import com.diagbot.enums.RuleBaseTypeEnum;
|
|
|
+import com.diagbot.util.StringUtil;
|
|
|
+import com.diagbot.vo.Drug;
|
|
|
+import com.diagbot.vo.IndicationPushVO;
|
|
|
+import com.diagbot.vo.ItemExt;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description:
|
|
|
+ * @Author:zhaops
|
|
|
+ * @time: 2021/3/4 9:57
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class MedSearchDataFacade {
|
|
|
+ /**
|
|
|
+ * 生成开单合理性入参
|
|
|
+ *
|
|
|
+ * @param resultBill
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IndicationPushVO createBillVO(ResultBill resultBill) {
|
|
|
+ IndicationPushVO indicationPushVO = new IndicationPushVO();
|
|
|
+ indicationPushVO.setAge("20");
|
|
|
+ indicationPushVO.setSex(3);
|
|
|
+ indicationPushVO.setRuleType("2");
|
|
|
+
|
|
|
+ //开单项
|
|
|
+ if (resultBill.getBillItemTypeCode().equals(LexiconEnum.LisName.getKey())) {
|
|
|
+ //检验开单项
|
|
|
+ Lis lis = new Lis();
|
|
|
+ lis.setName(resultBill.getBillItemHisName());
|
|
|
+ lis.setUniqueName(resultBill.getBillItemName());
|
|
|
+ indicationPushVO.getLisOrder().add(lis);
|
|
|
+ }
|
|
|
+ if (resultBill.getBillItemTypeCode().equals(LexiconEnum.PacsName.getKey())
|
|
|
+ || resultBill.getBillItemTypeCode().equals(LexiconEnum.PacsSubName.getKey())) {
|
|
|
+ Pacs pacs = new Pacs();
|
|
|
+ pacs.setName(resultBill.getBillItemHisName());
|
|
|
+ pacs.setUniqueName(resultBill.getBillItemName());
|
|
|
+ indicationPushVO.getPacsOrder().add(pacs);
|
|
|
+ }
|
|
|
+ if (resultBill.getBillItemTypeCode().equals(LexiconEnum.Operation.getKey())) {
|
|
|
+ Item operation = new Item();
|
|
|
+ operation.setName(resultBill.getBillItemHisName());
|
|
|
+ operation.setUniqueName(resultBill.getBillItemName());
|
|
|
+ indicationPushVO.getOperationOrder().add(operation);
|
|
|
+ }
|
|
|
+ if (resultBill.getBillItemTypeCode().equals(LexiconEnum.Medicine.getKey())) {
|
|
|
+ Drug drug = new Drug();
|
|
|
+ drug.setName(resultBill.getBillItemHisName());
|
|
|
+ drug.setUniqueName(resultBill.getBillItemName());
|
|
|
+ indicationPushVO.getDrugOrder().add(drug);
|
|
|
+ }
|
|
|
+ if (resultBill.getBillItemTypeCode().equals(LexiconEnum.Transfusion.getKey())) {
|
|
|
+ ItemExt itemExt = new ItemExt();
|
|
|
+ itemExt.setName(resultBill.getBillItemHisName());
|
|
|
+ itemExt.setUniqueName(resultBill.getBillItemName());
|
|
|
+ indicationPushVO.getTransfusionOrder().add(itemExt);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 100 疾病 1
|
|
|
+ * 101 药品通用名 1
|
|
|
+ * 101 药品通用名 4
|
|
|
+ * 103 症状 1
|
|
|
+ * 104 体格检查项目 2
|
|
|
+ * 105 体格检查结果 1
|
|
|
+ * 106 手术和操作 1
|
|
|
+ * 108 实验室检查子项目 2
|
|
|
+ * 109 辅助检查项目 5
|
|
|
+ * 112 辅助检查结果 1
|
|
|
+ * 116 性别 1
|
|
|
+ * 117 人群 1
|
|
|
+ * 119 其他过敏原 4
|
|
|
+ * 120 医疗器械及物品 1
|
|
|
+ * 301 药品化学物质类别 4
|
|
|
+ * 302 药品治疗学类别 4
|
|
|
+ * 303 药品药理学类别 4
|
|
|
+ * 410 年龄 2
|
|
|
+ */
|
|
|
+ if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Disease.getKey())) {
|
|
|
+ Item diag = new Item();
|
|
|
+ diag.setName(resultBill.getConflictItemHisName());
|
|
|
+ diag.setUniqueName(resultBill.getConflictItemName());
|
|
|
+ indicationPushVO.getDiag().add(diag);
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Medicine.getKey())) {
|
|
|
+ if (resultBill.getConflictType().equals(RuleBaseTypeEnum.Eq.getKey())) {
|
|
|
+ indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
|
|
|
+ (StringUtil.isNotBlank(resultBill.getConflictItemHisName())
|
|
|
+ ? ("一直服用" + resultBill.getConflictItemHisName() + ",")
|
|
|
+ : ""));
|
|
|
+ } else if (resultBill.getConflictType().equals(RuleBaseTypeEnum.Allergen.getKey())) {
|
|
|
+ indicationPushVO.setPasts(indicationPushVO.getPasts() +
|
|
|
+ (StringUtil.isNotBlank(resultBill.getConflictItemHisName())
|
|
|
+ ? ("对" + resultBill.getConflictItemHisName() + "过敏,")
|
|
|
+ : ""));
|
|
|
+ }
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Symptom.getKey())) {
|
|
|
+ indicationPushVO.setSymptom(indicationPushVO.getSymptom() + resultBill.getConflictItemName() + ",");
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Vital.getKey())) {
|
|
|
+ indicationPushVO.setVital(resultBill.getConflictItemName() + resultBill.getInputValue()
|
|
|
+ + (StringUtil.isNotBlank(resultBill.getUnit()) ? resultBill.getUnit() : "")
|
|
|
+ + ",");
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.VitalResult.getKey())) {
|
|
|
+ indicationPushVO.setVital(resultBill.getConflictItemName() + resultBill.getInputValue() + ",");
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Operation.getKey())) {
|
|
|
+ Item operation = new Item();
|
|
|
+ operation.setName(resultBill.getConflictItemHisName());
|
|
|
+ operation.setUniqueName(resultBill.getConflictItemName());
|
|
|
+ indicationPushVO.getOperation().add(operation);
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.LisSubName.getKey())) {
|
|
|
+ Lis lis = new Lis();
|
|
|
+ lis.setName(resultBill.getConflictItemHisName());
|
|
|
+ lis.setDetailName(resultBill.getConflictItemHisDetailName());
|
|
|
+ lis.setUniqueName(resultBill.getConflictItemName());
|
|
|
+ lis.setUnits(resultBill.getUnit());
|
|
|
+ if (resultBill.getMinValue() != null || resultBill.getMaxValue() != null) {
|
|
|
+ lis.setValue(Double.valueOf(resultBill.getInputValue()));
|
|
|
+ } else {
|
|
|
+ lis.setOtherValue(resultBill.getInputValue());
|
|
|
+ }
|
|
|
+ if (resultBill.getMaxValue() != null) {
|
|
|
+ lis.setMaxValue(resultBill.getMaxValue().doubleValue());
|
|
|
+ }
|
|
|
+ if (resultBill.getMinValue() != null) {
|
|
|
+ lis.setMinValue(resultBill.getMinValue().doubleValue());
|
|
|
+ }
|
|
|
+ indicationPushVO.getLis().add(lis);
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.PacsName.getKey())) {
|
|
|
+ if (resultBill.getConflictType().equals(RuleBaseTypeEnum.BillItem.getKey())) {
|
|
|
+ Pacs pacs = new Pacs();
|
|
|
+ pacs.setName(resultBill.getConflictItemHisName());
|
|
|
+ pacs.setUniqueName(resultBill.getConflictItemName());
|
|
|
+ indicationPushVO.getPacsOrder().add(pacs);
|
|
|
+ }
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.PacsResult.getKey())) {
|
|
|
+ Pacs pacs = new Pacs();
|
|
|
+ pacs.setDesc(resultBill.getConflictItemName());
|
|
|
+ pacs.setResult(resultBill.getConflictItemName());
|
|
|
+ indicationPushVO.getPacs().add(pacs);
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Gender.getKey())) {
|
|
|
+ if (resultBill.getConflictItemName().equals("男")) {
|
|
|
+ indicationPushVO.setSex(1);
|
|
|
+ } else if (resultBill.getConflictItemName().equals("女")) {
|
|
|
+ indicationPushVO.setSex(2);
|
|
|
+ } else {
|
|
|
+ indicationPushVO.setSex(3);
|
|
|
+ }
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Group.getKey())) {
|
|
|
+ indicationPushVO.setSymptom(indicationPushVO.getSymptom() +
|
|
|
+ resultBill.getConflictItemName() +
|
|
|
+ (resultBill.getInputValue() != null ? resultBill.getInputValue() : "") +
|
|
|
+ (StringUtil.isNotBlank(resultBill.getUnit()) ? resultBill.getUnit() : "") +
|
|
|
+ ",");
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Allergen.getKey())) {
|
|
|
+ indicationPushVO.setPasts(indicationPushVO.getPasts() + "对" + resultBill.getConflictItemName() + "过敏,");
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Device.getKey())) {
|
|
|
+ indicationPushVO.setPasts(indicationPushVO.getPasts() + "有" + resultBill.getConflictItemName() + ",");
|
|
|
+ } else if (resultBill.getConflictItemTypeCode().equals(LexiconEnum.Age.getKey())) {
|
|
|
+ indicationPushVO.setAge(resultBill.getInputValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ return indicationPushVO;
|
|
|
+ }
|
|
|
+}
|