123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- package com.diagbot.facade;
- import com.diagbot.biz.push.entity.Pacs;
- import com.diagbot.client.StandConvertServiceClient;
- import com.diagbot.dto.IndicationDTO;
- import com.diagbot.dto.StandConvertCrfBatchDTO;
- import com.diagbot.dto.StandConvertCrfDTO;
- import com.diagbot.util.ExcelUtils;
- import com.diagbot.util.ListUtil;
- import com.diagbot.util.StringUtil;
- import com.diagbot.vo.IndicationPushVO;
- import com.diagbot.vo.StandConvertCrfVO;
- import com.diagbot.vo.TestIndicationVO;
- import com.diagbot.vo.TestLineVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import org.springframework.web.multipart.MultipartFile;
- import java.util.ArrayList;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @Description: 测试facade
- * @author: zhoutg
- * @time: 2018/8/6 9:11
- */
- @Component
- public class TestFacade {
- @Autowired
- IndicationFacade indicationFacade;
- @Autowired
- StandConvertServiceClient standConvertServiceClient;
- /**
- * 开单项数据测试
- *
- * @param file
- */
- public Map<String, Object> importExcel(MultipartFile file, TestLineVO testLineVO) {
- List<IndicationPushVO> indicationPushVOList = new ArrayList<>();
- List<TestIndicationVO> data = ExcelUtils.importExcel(file, 0, 1, TestIndicationVO.class);
- for (TestIndicationVO bean : data) {
- if (StringUtil.isNotEmpty(testLineVO.getIdNum()) && !testLineVO.getIdNum().equals(bean.getIdNum())) {
- continue;
- }
- IndicationPushVO indicationPushVO = new IndicationPushVO();
- indicationPushVO.setRuleType("2");
- indicationPushVO.setIdNum(bean.getIdNum());
- if (StringUtil.isNotBlank(bean.getOrderType())) {
- switch (bean.getOrderType()) {
- // case "实验室检查" : // 细项
- // List<Lis> lisDetailOrder = new ArrayList<>();
- // Lis lisDetailBean = new Lis();
- // lisDetailBean.setName(bean.getStandName());
- // lisDetailBean.setDetailName(bean.getStandName());
- // lisDetailBean.setUniqueName(bean.getStandName());
- // lisDetailOrder.add(lisDetailBean);
- // indicationPushVO.setLisOrder(lisDetailOrder);
- // break;
- case "辅助检查" :
- List<Pacs> pacsOrder = new ArrayList<>();
- Pacs pacsBean = new Pacs();
- pacsBean.setName(bean.getStandName());
- pacsBean.setUniqueName(bean.getStandName());
- pacsOrder.add(pacsBean);
- indicationPushVO.setPacsOrder(pacsOrder);
- break;
- // case "实验室检查套餐" :
- // List<Lis> lisOrder = new ArrayList<>();
- // Lis lisBean = new Lis();
- // lisBean.setName(bean.getStandName());
- // lisBean.setUniqueName(bean.getStandName());
- // lisOrder.add(lisBean);
- // indicationPushVO.setLisOrder(lisOrder);
- // break;
- case "手术和操作" :
- continue;
- default:
- continue;
- }
- }
- if (StringUtil.isNotEmpty(bean.getNeoType())) {
- switch (bean.getNeoType()) {
- // case "1" : // 性别
- // if ("男性".equals(bean.getNeoName())) {
- // indicationPushVO.setSex(1);
- // } else if ("女性".equals(bean.getNeoName())) {
- // indicationPushVO.setSex(2);
- // }
- // break;
- // case "2" : // 化验, 示例:血小板计数,<,50,*10~9L
- // String lisStr = bean.getNeoName();
- // String[] lisArr = lisStr.split(",");
- //
- // List<Lis> lisList = new ArrayList<>();
- // Lis lisBean = new Lis();
- // lisBean.setUniqueName(lisArr[0]);
- // lisBean.setName(lisArr[0]);
- // lisBean.setDetailName(lisArr[0]);
- // lisBean.setValue(getValue(lisArr));
- // lisList.add(lisBean);
- // indicationPushVO.setLis(lisList);
- // break;
- // case "3" : // 临床表现
- // indicationPushVO.setChief(bean.getNeoName());
- // break;
- // case "5" : // 诊断
- // indicationPushVO.setDiagString(bean.getNeoName());
- // break;
- case "12" : // 体征
- String[] vitalArr = bean.getNeoName().split(",");
- StringBuffer sbVital = new StringBuffer();
- if ("体温".equals(vitalArr[0])) {
- sbVital.append("体温");
- sbVital.append(getValue(vitalArr));
- sbVital.append(vitalArr[3]);
- indicationPushVO.setVital(sbVital.toString());
- }
- // else if ("收缩压".equals(vitalArr[0]) || "舒张压".equals(vitalArr[0])){
- // if ("收缩压".equals(vitalArr[0])) {
- // sbVital.append("血压");
- // sbVital.append(getValue(vitalArr) + "/100mmHg");
- // indicationPushVO.setVital(sbVital.toString());
- // } else if ("舒张压".equals(vitalArr[0])) {
- // sbVital.append("血压");
- // sbVital.append("100/" + getValue(vitalArr) + "mmHg");
- // indicationPushVO.setVital(sbVital.toString());
- // }
- // }
- else {
- continue;
- }
- break;
- default:
- continue;
- }
- }
- indicationPushVOList.add(indicationPushVO);
- }
- Map<String, Object> map = new LinkedHashMap<>();
- List<String> msg = new ArrayList<>();
- List<String> errMsg = new ArrayList<>();
- for (IndicationPushVO indicationPushVO : indicationPushVOList) {
- try {
- IndicationDTO indicationDTO = indicationFacade.indicationFac(indicationPushVO);
- if (ListUtil.isEmpty(indicationDTO.getBillMsgList())) {
- msg.add("第【" + indicationPushVO.getIdNum() + "】行未匹配");
- }
- } catch (Exception e) {
- errMsg.add(indicationPushVO.getIdNum() + "行出错了");
- }
- }
- map.put("总条数", indicationPushVOList.size() + "条");
- map.put("出错条数", msg.size() + "条");
- map.put("出错信息", msg);
- map.put("程序报错", errMsg);
- return map;
- }
- /**
- * 返回数值
- *
- * @param arr
- * @return
- */
- public double getValue(String[] arr) {
- if ("<".equals(arr[1]) || "≤".equals(arr[1])) {
- return Double.parseDouble(arr[2])-1;
- } else if (">".equals(arr[1]) || "≥".equals(arr[1])) {
- return Double.parseDouble(arr[2])+1;
- }
- return 0.0;
- }
- /**
- * 标准词转换
- *
- * @param standConvertCrfVO
- * @return
- */
- public StandConvertCrfDTO testStandConvert(StandConvertCrfVO standConvertCrfVO) {
- StandConvertCrfDTO standConvertCrfDTO = standConvertServiceClient.similarity(standConvertCrfVO);
- return standConvertCrfDTO;
- }
- /**
- * 标准词转换(批量)
- *
- * @param standConvertCrfVOList
- * @return
- */
- public StandConvertCrfBatchDTO testStandConvertBatch(List<StandConvertCrfVO> standConvertCrfVOList) {
- StandConvertCrfBatchDTO standConvertCrfBatchDTO = standConvertServiceClient.similarityBatch(standConvertCrfVOList);
- return standConvertCrfBatchDTO;
- }
- }
|