shiyue 4 лет назад
Родитель
Сommit
902e9c0325
28 измененных файлов с 573 добавлено и 166 удалено
  1. 2 0
      aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java
  2. 6 0
      common/src/main/java/com/diagbot/dto/RespDTO.java
  3. 5 5
      config-server/src/main/resources/shared/aipt-service-local.yml
  4. 2 2
      config-server/src/main/resources/shared/gateway-service-local.yml
  5. 4 4
      config-server/src/main/resources/shared/tran-service-local.yml
  6. 31 0
      tran-service/src/main/java/com/diagbot/client/DataServiceClient.java
  7. 22 0
      tran-service/src/main/java/com/diagbot/client/hystrix/DataServiceHystrix.java
  8. 16 0
      tran-service/src/main/java/com/diagbot/dto/ConceptBaseDTO.java
  9. 19 0
      tran-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java
  10. 51 0
      tran-service/src/main/java/com/diagbot/dto/PushDTO.java
  11. 3 0
      tran-service/src/main/java/com/diagbot/facade/DataServiceFacade.java
  12. 4 0
      tran-service/src/main/java/com/diagbot/facade/DiseaseDeptFacade.java
  13. 25 0
      tran-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java
  14. 23 0
      tran-service/src/main/java/com/diagbot/facade/PacsConfigFacade.java
  15. 300 153
      tran-service/src/main/java/com/diagbot/facade/PushFacade.java
  16. 22 0
      tran-service/src/main/java/com/diagbot/facade/TranLisConfigFacade.java
  17. 2 0
      tran-service/src/main/java/com/diagbot/mapper/DiseaseDeptMapper.java
  18. 5 0
      tran-service/src/main/java/com/diagbot/mapper/DiseaseIcdMapper.java
  19. 2 0
      tran-service/src/main/java/com/diagbot/mapper/PacsConfigMapper.java
  20. 1 0
      tran-service/src/main/java/com/diagbot/service/DiseaseIcdService.java
  21. 2 0
      tran-service/src/main/java/com/diagbot/service/PacsConfigService.java
  22. 3 0
      tran-service/src/main/java/com/diagbot/service/TranLisConfigService.java
  23. 8 0
      tran-service/src/main/java/com/diagbot/service/impl/DiseaseIcdServiceImpl.java
  24. 1 0
      tran-service/src/main/java/com/diagbot/service/impl/PacsConfigServiceImpl.java
  25. 5 0
      tran-service/src/main/java/com/diagbot/service/impl/TranLisConfigServiceImpl.java
  26. 7 0
      tran-service/src/main/java/com/diagbot/vo/PushJoinVO.java
  27. 1 2
      tran-service/src/main/java/com/diagbot/web/PushController.java
  28. 1 0
      tran-service/src/main/resources/mapper/DiseaseIcdMapper.xml

+ 2 - 0
aipt-service/src/main/java/com/diagbot/facade/ClinicalFacade.java

@@ -1,6 +1,7 @@
 package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.diagbot.biz.push.entity.ResponseData;
 import com.diagbot.biz.push.vo.SearchVO;
 import com.diagbot.client.AIServiceClient;
@@ -50,6 +51,7 @@ public class ClinicalFacade {
     public ResponseData processClinicalData(@RequestBody SearchVO searchVO) {
         SearchData searchData = assembleFacade.assembleData(searchVO);
         Response<ResponseData> res = aiServiceClient.bayesPageData(searchData);
+        System.out.println(JSONObject.toJSONString(searchData));
         if (res == null || res.getData() == null) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "AI没有返回结果");
         }

+ 6 - 0
common/src/main/java/com/diagbot/dto/RespDTO.java

@@ -19,6 +19,12 @@ public class RespDTO<T> implements Serializable {
         resp.data = data;
         return resp;
     }
+    public static RespDTO onPushError(String errMsg) {
+        RespDTO resp = new RespDTO();
+        resp.code="-2";
+        resp.msg = errMsg;
+        return resp;
+    }
 
     public static RespDTO onError(String errMsg) {
         RespDTO resp = new RespDTO();

+ 5 - 5
config-server/src/main/resources/shared/aipt-service-local.yml

@@ -7,9 +7,9 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://10.48.45.182:3306/med?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.139:3306/med?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
-      password: lt@great
+      password: lantone
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5
@@ -99,12 +99,12 @@ io.github.lvyahui8.spring.base-packages: com.diagbot.aggregate
 
 ai:
   server:
-    address: http://10.48.45.182:5008
+    address: http://127.0.0.1:5008
 
 nlp:
   server:
-    address: http://10.48.45.182:5002
+    address: http://127.0.0.1:5002
 
 aineo:
   server:
-    address: http://10.48.45.182:8888
+    address: http://127.0.0.1:8888

+ 2 - 2
config-server/src/main/resources/shared/gateway-service-local.yml

@@ -18,8 +18,8 @@ spring:
   redis:
     database:
       cache: 0 # Redis限流缓存索引
-    host: 10.48.45.180  #Redis服务器地址
-    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    host: 192.168.2.236  #Redis服务器地址
+    port: 6378 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:

+ 4 - 4
config-server/src/main/resources/shared/tran-service-local.yml

@@ -7,9 +7,9 @@ spring:
     druid:
       driver-class-name: com.mysql.cj.jdbc.Driver
       platform: mysql
-      url: jdbc:mysql://10.48.45.182:3306/sys-tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
+      url: jdbc:mysql://192.168.2.139:3306/sys-tran?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
       username: root
-      password: lt@great
+      password: lantone
       # 连接池的配置信息
       # 初始化大小,最小,最大
       initialSize: 5
@@ -70,8 +70,8 @@ spring:
   redis:
     database:
       mr: 7 # Redis病历索引
-    host: 10.48.45.180  #Redis服务器地址
-    port: 6379 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
+    host: 192.168.2.236  #Redis服务器地址
+    port: 6378 # Redis服务器连接端口(本地环境端口6378,其他环境端口是6379)
     password: lantone # Redis服务器连接密码(默认为空)
     lettuce:
       pool:

+ 31 - 0
tran-service/src/main/java/com/diagbot/client/DataServiceClient.java

@@ -0,0 +1,31 @@
+package com.diagbot.client;
+
+
+import com.diagbot.client.hystrix.DataServiceHystrix;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.PushJoinVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+
+/**
+ * @Description: data-service
+ * @author: lipc
+ * @time: 2019/8/21 14:34
+ */
+@FeignClient(value = "data-service", fallback = DataServiceHystrix.class)
+public interface DataServiceClient {
+
+    /**
+     * 对接-推送接口
+     *
+     * @param pushVO
+     * @return
+     */
+    @PostMapping("/push/push")
+    RespDTO<PushDTO> push(@RequestBody @Valid PushJoinVO pushVO);
+
+}

+ 22 - 0
tran-service/src/main/java/com/diagbot/client/hystrix/DataServiceHystrix.java

@@ -0,0 +1,22 @@
+package com.diagbot.client.hystrix;
+
+import com.diagbot.client.DataServiceClient;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.PushJoinVO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+
+@Component
+@Slf4j
+public class DataServiceHystrix  implements DataServiceClient {
+
+    @Override
+    public RespDTO<PushDTO> push(@RequestBody @Valid PushJoinVO pushVO){
+        log.error("【hystrix】调用{}异常", "pushVO");
+        return null;
+    }
+}

+ 16 - 0
tran-service/src/main/java/com/diagbot/dto/ConceptBaseDTO.java

@@ -0,0 +1,16 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description: 概念出参基础实体类
+ * @author: gaodm
+ * @time: 2019/5/7 9:44
+ */
+@Getter
+@Setter
+public class ConceptBaseDTO {
+    private Long conceptId; // 概念id
+    private String name;    //概念名称
+}

+ 19 - 0
tran-service/src/main/java/com/diagbot/dto/ConceptPushDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:推理返回标签(概念)
+ * @Author:zhaops
+ * @time: 2019/5/7 20:06
+ */
+@Getter
+@Setter
+public class ConceptPushDTO extends ConceptBaseDTO {
+    private Integer libType;  //词性
+    private List<String> clientNames;//数据服务模式调用方名称
+    private Integer type;
+}

+ 51 - 0
tran-service/src/main/java/com/diagbot/dto/PushDTO.java

@@ -0,0 +1,51 @@
+package com.diagbot.dto;
+
+import com.diagbot.biz.push.entity.MedicalIndication;
+import com.diagbot.biz.push.entity.Treat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 推理出参
+ * @Author:zhaops
+ * @time: 2018/11/20 13:44
+ */
+@Getter
+@Setter
+public class PushDTO {
+    /**
+     * 症状
+     */
+    private List<ConceptPushDTO> symptom;
+    /**
+     * 体征结果
+     */
+    private List<ConceptPushDTO> vital;
+    /**
+     * 化验
+     */
+    private List<ConceptPushDTO> lab;
+    /**
+     * 辅检
+     */
+    private List<ConceptPushDTO> pacs;
+    /**
+     * 诊断
+     */
+    private Map<String, List<ConceptPushDTO>> dis;
+    /**
+     * 病情提示
+     */
+    private List<MedicalIndication> medicalIndications;
+    /**
+     * 治疗方案
+     */
+    private Treat treat;
+    /**
+     * 有无病情提示标志(0:无,1:有)
+     */
+    private String hasIndications;
+}

+ 3 - 0
tran-service/src/main/java/com/diagbot/facade/DataServiceFacade.java

@@ -45,4 +45,7 @@ public class DataServiceFacade {
             }
         }
     }
+
+
+
 }

+ 4 - 0
tran-service/src/main/java/com/diagbot/facade/DiseaseDeptFacade.java

@@ -1,8 +1,10 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.diagbot.dto.DiseaseDeptDTO;
 import com.diagbot.entity.DiseaseDept;
+import com.diagbot.entity.DiseaseIcd;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.service.impl.DiseaseDeptServiceImpl;
@@ -45,4 +47,6 @@ public class DiseaseDeptFacade extends DiseaseDeptServiceImpl {
         List<DiseaseDeptDTO> diseaseDeptDTOList = BeanUtil.listCopyTo(diseaseDeptList, DiseaseDeptDTO.class);
         return diseaseDeptDTOList;
     }
+
+
 }

+ 25 - 0
tran-service/src/main/java/com/diagbot/facade/DiseaseIcdFacade.java

@@ -0,0 +1,25 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.diagbot.entity.DiseaseIcd;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.service.impl.DiseaseIcdServiceImpl;
+import org.springframework.stereotype.Component;
+
+@Component
+public class DiseaseIcdFacade extends DiseaseIcdServiceImpl {
+
+
+    public DiseaseIcd getUniqueName(String hospitalCode, String diseaseName) {
+        QueryWrapper<DiseaseIcd> queryWrapper = Wrappers.query();
+        queryWrapper
+                .eq("hospital_code",hospitalCode)
+                .eq("disease_name",diseaseName)
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("status", StatusEnum.Enable.getKey());
+        DiseaseIcd diseaseIcd= baseMapper.selectOne(queryWrapper);
+        return diseaseIcd;
+    }
+}

+ 23 - 0
tran-service/src/main/java/com/diagbot/facade/PacsConfigFacade.java

@@ -1,6 +1,9 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.diagbot.biz.push.entity.Item;
+import com.diagbot.biz.push.entity.Pacs;
 import com.diagbot.entity.PacsConfig;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.PacsConfigServiceImpl;
@@ -102,4 +105,24 @@ public class PacsConfigFacade extends PacsConfigServiceImpl{
         }
         return retMap;
     }
+
+    /**
+     * 根据医院编号和mealName来获取uniqueName
+     * @param hosCode
+     * @param name
+     * @return
+     */
+    public PacsConfig getPacsConfigByNameAndHosCode(String hosCode, String name){
+            QueryWrapper<PacsConfig> queryWrapper = Wrappers.query();
+            queryWrapper
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_code", hosCode).eq("meal_name", name);
+            PacsConfig pacsConfig =baseMapper.selectOne(queryWrapper);
+            return pacsConfig;
+
+
+    }
+
+
+
 }

+ 300 - 153
tran-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -1,7 +1,17 @@
 package com.diagbot.facade;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.diagbot.biz.push.entity.Item;
+import com.diagbot.biz.push.entity.Lis;
+import com.diagbot.biz.push.entity.Pacs;
+import com.diagbot.client.DataServiceClient;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.DiseaseIcd;
 import com.diagbot.entity.InputInfo;
+import com.diagbot.entity.PacsConfig;
+import com.diagbot.entity.TranLisConfig;
 import com.diagbot.enums.SysTypeEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
@@ -10,6 +20,7 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.vo.ConceptIntroduceVO;
 import com.diagbot.vo.PushJoinVO;
 import com.diagbot.vo.PushVO;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -17,165 +28,301 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * HIS接口对接业务
- * 
- * @author QQ
  *
+ * @author QQ
  */
 @Component
 public class PushFacade {
-	@Autowired
-	MrFacade mrFacade;
-
-	@Autowired
-	ReadProperties readProperties;
-
-	@Autowired
-	InputInfoFacade inputInfoFacade;
-
-	@Autowired
-	SysSetFacade sysSetFacade;
-
-	@Autowired
-	TranLisConfigFacade tranLisConfigFacade;
-
-	@Autowired
-	PacsConfigFacade pacsConfigFacade;
-
-	@Autowired
-	TranDiseaseIcdFacade diseaseIcdFacade;
-	
-	/**
-	 * plan: 配置信息编号,默认0 hospitalCode:医院code mrId:医院数据唯一标识 tipsName:
-	 * 静态信息名称(化验项名称、辅捡项名称) tipsType:
-	 * 静态信息类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标)
-	 * showTab: 0默认显示治疗方案 1默认显示静态信息
-	 * 
-	 * @param pushVO
-	 * @return
-	 */
-	public String getDataService(PushVO pushVO) {
-		PushJoinVO pushJoinVO = new PushJoinVO();
-		pushVO.setSysType(SysTypeEnum.DATA_SERVICE.getKey());//数据服务模式
-		BeanUtil.copyProperties(pushVO, pushJoinVO);
-
-		List<ConceptIntroduceVO> conceptIntroduceVOList = new ArrayList<ConceptIntroduceVO>();
-		if("6".equals(pushVO.getCode())){
-			if(pushVO.getPacsOrder().size()>0){
-				pushVO.getPacsOrder().forEach(i->{
-					if(StringUtil.isNotEmpty(i.getName())){
-						getPacsConfig(conceptIntroduceVOList,i.getName(),pushVO.getHosCode());
-					}
-				} );
-			}
-		}else if("7".equals(pushVO.getCode())){
-			if(pushVO.getLisOrder().size()>0){
-				pushVO.getLisOrder().forEach(i->{
-					if(StringUtil.isNotEmpty(i.getName())){
-						getLisConfig(conceptIntroduceVOList,i.getName(),pushVO.getHosCode());
-					}
-				} );
-			}
-		}
-
-		//病史
-		if(pushVO.getMedicalHistory()!=null){
-			pushJoinVO.setPasts(pushVO.getMedicalHistory().getPasts());
-			pushJoinVO.setInfectious(pushVO.getMedicalHistory().getInfectious());
-			pushJoinVO.setOperation(pushVO.getMedicalHistory().getOther());
-			pushJoinVO.setAllergy(pushVO.getMedicalHistory().getAllergy());
-			pushJoinVO.setVaccination(pushVO.getMedicalHistory().getVaccination());
-			pushJoinVO.setPersonal(pushVO.getMedicalHistory().getPersonal());
-			pushJoinVO.setMarital(pushVO.getMedicalHistory().getMarital());
-			pushJoinVO.setFamily(pushVO.getMedicalHistory().getFamily());
-			pushJoinVO.setMenstrual(pushVO.getMedicalHistory().getMenstrual());
-			pushJoinVO.setOther(pushVO.getMedicalHistory().getOther());
-		}
-
-		// 将基本参数保存到redis
-		String mrId = mrFacade.createMr(pushJoinVO);
-		// 竖版
-		String url = "";
-		String urlVer = readProperties.remoteAddressVer + "?hospitalCode=" + pushVO.getHosCode() + "&mrId=" + mrId;
-		String urlHor = readProperties.remoteAddressHor + "?hospitalCode=" + pushVO.getHosCode() + "&mrId=" + mrId;
-
-		// 1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标
-		if ("hor".equalsIgnoreCase(pushVO.getShowType())) {
-			// 横版
-			urlHor += "&showTab=1&tipsMode=2&tipsInfoList=" + JSONObject.toJSONString(conceptIntroduceVOList) + "&plan=" + pushVO.getCode();
-			url = urlHor;
-		} else {
-			// 竖版
-			urlVer += "&showTab=0&tipsMode=2&tipsInfoList=" + JSONObject.toJSONString(conceptIntroduceVOList) + "&plan=" + pushVO.getCode();
-			url = urlVer;
-		}
-
-		//将请求记录到统计表
-		saveInputInfo(pushVO, url);
-		return url;
-	}
-
-	private void saveInputInfo(PushVO pushVO, String url) {
-		InputInfo inputInfo = new InputInfo();
-		inputInfo.setHospitalCode(pushVO.getHosCode());
-		inputInfo.setHosptialDeptCode(pushVO.getHospitalDeptCopde());
-		inputInfo.setDoctorCode(pushVO.getDoctorCode());
-		inputInfo.setInquiryCode(pushVO.getInquiryCode());
-		inputInfo.setAge(pushVO.getAge());
-		inputInfo.setSexType(pushVO.getSex().toString());
-		inputInfo.setParamIn(JSONObject.toJSONString(pushVO));
-		inputInfo.setParamOut(url);
-		inputInfo.setTransTime(DateUtil.format(new Date(), DateUtil.DATE_TIME_FORMAT));
-		inputInfo.setRemark(pushVO.getCode());
-		inputInfoFacade.saveInputInfo(inputInfo);
-	}
-
-	/**
-	 * 获取公表项中对应的辅检,未查询到时去化验公表项再查
-	 *
-	 * @param
-	 */
-	private void getPacsConfig(List<ConceptIntroduceVO> conceptIntroduceVOList,String pacsName,String hosCode) {
-		// 比对映射表中的辅检项
-		Map<String, Object> pacsMap = pacsConfigFacade.getPacsConfigByMealname(hosCode,pacsName);
-		if (pacsMap!=null) {
-			String uniqueName = pacsMap.get("unique_name").toString();
-			if (!"".equals(uniqueName) && uniqueName != null) {
-				String[] uniqueNames = uniqueName.split("、");
-				for (int i = 0; i < uniqueNames.length; i++) {
-					ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
-					conceptIntroduceVO.setName(uniqueNames[i]);
-					conceptIntroduceVO.setType(6);// 1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标
-					conceptIntroduceVO.setPosition(1);// 1-摘要,2-全文,5-药品说明书,6-不良反应
-					conceptIntroduceVOList.add(conceptIntroduceVO);
-
-				}
-			}
-		}
-	}
-
-	/**
-	 * 获取公表项中对应的化验,未查询到时去辅检公表项再查
-	 *
-	 * @param conceptIntroduceVOList
-	 * @param
-	 */
-	private void getLisConfig(List<ConceptIntroduceVO> conceptIntroduceVOList,String lisName,String hosCode) {
-		// 比对映射表中的化验项
-		Map<String, Object> lisMap = tranLisConfigFacade.getLisConfigByMealName(hosCode,lisName);
-		if (lisMap!=null) {
-			String uniqueName = lisMap.get("unique_name").toString();
-			String[] uniqueNames = uniqueName.split("、");
-			for (int i = 0; i < uniqueNames.length; i++) {
-				ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
-				conceptIntroduceVO.setName(uniqueNames[i]);
-				conceptIntroduceVO.setType(12);// 1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标
-				conceptIntroduceVO.setPosition(1);// 1-摘要,2-全文,5-药品说明书,6-不良反应
-				conceptIntroduceVOList.add(conceptIntroduceVO);
-			}
-		}
-	}
+    @Autowired
+    MrFacade mrFacade;
+
+    @Autowired
+    ReadProperties readProperties;
+
+    @Autowired
+    InputInfoFacade inputInfoFacade;
+
+    @Autowired
+    SysSetFacade sysSetFacade;
+
+    @Autowired
+    TranLisConfigFacade tranLisConfigFacade;
+
+    @Autowired
+    PacsConfigFacade pacsConfigFacade;
+
+    @Autowired
+    TranDiseaseIcdFacade diseaseIcdFacade;
+    @Autowired
+    DiseaseIcdFacade diseaseIcdFacade1;
+    @Autowired
+    DataServiceClient dataServiceClient;
+
+    /**
+     * plan: 配置信息编号,默认0 hospitalCode:医院code mrId:医院数据唯一标识 tipsName:
+     * 静态信息名称(化验项名称、辅捡项名称) tipsType:
+     * 静态信息类型(1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标)
+     * showTab: 0默认显示治疗方案 1默认显示静态信息
+     *
+     * @param pushVO
+     * @return
+     */
+    public RespDTO getDataService(PushVO pushVO) {
+        PushJoinVO pushJoinVO = new PushJoinVO();
+        pushJoinVO.setFeatureType("1,4,5,6,7,22");
+        pushVO.setSysType(SysTypeEnum.DATA_SERVICE.getKey());//数据服务模式
+        BeanUtil.copyProperties(pushVO, pushJoinVO);
+
+        List<ConceptIntroduceVO> conceptIntroduceVOList = new ArrayList<ConceptIntroduceVO>();
+        if ("7".equals(pushVO.getCode())) {
+            if (pushVO.getPacsOrder().size() > 0) {
+                pushVO.getPacsOrder().forEach(i -> {
+                    if (StringUtil.isNotEmpty(i.getName())) {
+                        getPacsConfig(conceptIntroduceVOList, i.getName(), pushVO.getHosCode());
+                    }
+                });
+            }
+        } else if ("6".equals(pushVO.getCode())) {
+            if (pushVO.getLisOrder().size() > 0) {
+                pushVO.getLisOrder().forEach(i -> {
+                    if (StringUtil.isNotEmpty(i.getName())) {
+                        getLisConfig(conceptIntroduceVOList, i.getName(), pushVO.getHosCode());
+                    }
+                });
+            }
+        }
+
+        StringBuilder stringBuilder =new StringBuilder();
+        //根据医院编号和his方疾病名称得到朗通疾病名称
+        if (pushJoinVO.getDiagOrder() != null) {
+            List<Item> items = pushJoinVO.getDiagOrder().stream().map(item -> {
+                Item item1 = new Item();
+                BeanUtils.copyProperties(item, item1);
+                Map<String, Object> diagMap = diseaseIcdFacade.getDiseaseIcdByDiseaseName(pushJoinVO.getHosCode(), item.getName());
+                if (diagMap != null) {
+                    String uniqueName = diagMap.get("concept_dis_name").toString();
+                    item1.setUniqueName(uniqueName);
+                }
+
+                return item1;
+            }).collect(Collectors.toList());
+            pushJoinVO.setDiagOrder(items);
+        }
+        if (pushJoinVO.getDiag() != null) {
+            List<Item> items = pushJoinVO.getDiag().stream().map(item -> {
+                Item item1 = new Item();
+                BeanUtils.copyProperties(item, item1);
+                Map<String, Object> diagMap = diseaseIcdFacade.getDiseaseIcdByDiseaseName(pushJoinVO.getHosCode(), item.getName());
+                if (diagMap != null) {
+                    String uniqueName = diagMap.get("concept_dis_name").toString();
+                    item1.setUniqueName(uniqueName);
+                }
+                return item1;
+            }).collect(Collectors.toList());
+            pushJoinVO.setDiag(items);
+        }
+
+
+
+
+
+        //根据医院编号和mealName来获取uniqueName
+        if (pushJoinVO.getPacsOrder() != null) {
+            List<Pacs> pacsOrder = pushJoinVO.getPacsOrder().stream().map(item -> {
+                Pacs pacs = new Pacs();
+                BeanUtils.copyProperties(item, pacs);
+                Map<String, Object> pacsMap = pacsConfigFacade.getPacsConfigByMealname(pushJoinVO.getHosCode(), item.getName());
+                if (pacsMap != null) {
+                    String uniqueName = pacsMap.get("unique_name").toString();
+                    pacs.setUniqueName(uniqueName);
+                }
+                return pacs;
+            }).collect(Collectors.toList());
+            pushJoinVO.setPacsOrder(pacsOrder);
+
+        }
+        if (pushJoinVO.getPacs() != null) {
+            List<Pacs> pacs = pushJoinVO.getPacs().stream().map(item -> {
+                Pacs pacs1 = new Pacs();
+                BeanUtils.copyProperties(item, pacs1);
+                Map<String, Object> pacsMap = pacsConfigFacade.getPacsConfigByMealname(pushJoinVO.getHosCode(), item.getName());
+                if (pacsMap != null) {
+                    String uniqueName = pacsMap.get("unique_name").toString();
+                    pacs1.setUniqueName(uniqueName);
+                }
+                return pacs1;
+            }).collect(Collectors.toList());
+            pushJoinVO.setPacs(pacs);
+
+        }
+
+        //根据医院编码和his方传过来的mealName,itemName来得到它的uniqueName';
+        if (pushJoinVO.getLisOrder() != null) {
+            List<Lis> lisOrder = pushJoinVO.getLisOrder().stream().map(lis -> {
+                Lis lis1 = new Lis();
+                BeanUtils.copyProperties(lis, lis1);
+                Map<String, Object> lisMap = tranLisConfigFacade.getLisConfigByMealName(pushJoinVO.getHosCode(), lis.getName());
+                if (lisMap != null) {
+                    String uniqueName = lisMap.get("unique_name").toString();
+                        int index = uniqueName.indexOf("-");
+                        lis1.setUniqueName(uniqueName.substring(0, index));
+                }
+                return lis1;
+            }).collect(Collectors.toList());
+
+            pushJoinVO.setLisOrder(lisOrder);
+
+
+        }
+
+        if (pushJoinVO.getLis() != null) {
+            List<Lis> lis = pushJoinVO.getLis().stream().map(lis1 -> {
+                Lis lis2 = new Lis();
+                BeanUtils.copyProperties(lis1, lis2);
+                Map<String, Object> lisMap = tranLisConfigFacade.getLisConfigByMealName(pushJoinVO.getHosCode(), lis1.getName());
+                if (lisMap != null) {
+                    String uniqueName = lisMap.get("unique_name").toString();
+                    int index = uniqueName.indexOf("-");
+                    lis1.setUniqueName(uniqueName.substring(0, index));
+                }
+                return lis2;
+            }).collect(Collectors.toList());
+            pushJoinVO.setLis(lis);
+
+
+        }
+
+
+
+
+        //病史
+        if (pushVO.getMedicalHistory() != null) {
+            pushJoinVO.setPasts(pushVO.getMedicalHistory().getPasts());
+            pushJoinVO.setInfectious(pushVO.getMedicalHistory().getInfectious());
+            pushJoinVO.setOperation(pushVO.getMedicalHistory().getOther());
+            pushJoinVO.setAllergy(pushVO.getMedicalHistory().getAllergy());
+            pushJoinVO.setVaccination(pushVO.getMedicalHistory().getVaccination());
+            pushJoinVO.setPersonal(pushVO.getMedicalHistory().getPersonal());
+            pushJoinVO.setMarital(pushVO.getMedicalHistory().getMarital());
+            pushJoinVO.setFamily(pushVO.getMedicalHistory().getFamily());
+            pushJoinVO.setMenstrual(pushVO.getMedicalHistory().getMenstrual());
+            pushJoinVO.setOther(pushVO.getMedicalHistory().getOther());
+        }
+
+        // 将基本参数保存到redis
+        String mrId = mrFacade.createMr(pushJoinVO);
+        System.out.println(JSONObject.toJSONString(pushJoinVO));
+
+        if (pushVO.getCode().equals("5")) {
+            pushJoinVO.setRuleType("1,2");
+            RespDTO<PushDTO> respDTO = dataServiceClient.push(pushJoinVO);
+
+            if (null == respDTO.data) {
+                return RespDTO.onPushError("没有返回结果");
+            }
+            if (respDTO.data.getHasIndications().equals("0")) {
+                return RespDTO.onPushError("无推送结果");
+            }
+        }
+        if (pushVO.getCode().equals("9")) {
+            RespDTO<PushDTO> respDTO = dataServiceClient.push(pushJoinVO);
+            System.out.println(JSONObject.toJSONString(respDTO));
+            if (null == respDTO.data) {
+                return RespDTO.onPushError("没有返回结果");
+            }
+            if (respDTO.data.getLab()==null&&respDTO.data.getPacs()==null) {
+                return RespDTO.onPushError("无推送结果");
+            }
+        }
+
+
+        // 竖版
+        String url = "";
+        String urlVer = readProperties.remoteAddressVer + "?hospitalCode=" + pushVO.getHosCode() + "&mrId=" + mrId;
+        String urlHor = readProperties.remoteAddressHor + "?hospitalCode=" + pushVO.getHosCode() + "&mrId=" + mrId;
+
+        // 1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标
+
+
+        if ("hor".equalsIgnoreCase(pushVO.getShowType())) {
+            // 横版
+            urlHor += "&showTab=1&tipsMode=2&tipsInfoList=" + JSONObject.toJSONString(conceptIntroduceVOList) + "&plan=" + pushVO.getCode();
+            url = urlHor;
+        } else {
+            // 竖版
+            urlVer += "&showTab=0&tipsMode=2&tipsInfoList=" + JSONObject.toJSONString(conceptIntroduceVOList) + "&plan=" + pushVO.getCode();
+            url = urlVer;
+        }
+        System.out.println(JSONObject.toJSONString(conceptIntroduceVOList));
+        //将请求记录到统计表
+        saveInputInfo(pushVO, url);
+        return RespDTO.onSuc(url);
+    }
+
+    private void saveInputInfo(PushVO pushVO, String url) {
+        InputInfo inputInfo = new InputInfo();
+        inputInfo.setHospitalCode(pushVO.getHosCode());
+        inputInfo.setHosptialDeptCode(pushVO.getHospitalDeptCopde());
+        inputInfo.setDoctorCode(pushVO.getDoctorCode());
+        inputInfo.setInquiryCode(pushVO.getInquiryCode());
+        inputInfo.setAge(pushVO.getAge());
+        inputInfo.setSexType(pushVO.getSex().toString());
+        inputInfo.setParamIn(JSONObject.toJSONString(pushVO));
+        inputInfo.setParamOut(url);
+        inputInfo.setTransTime(DateUtil.format(new Date(), DateUtil.DATE_TIME_FORMAT));
+        inputInfo.setRemark(pushVO.getCode());
+        inputInfoFacade.saveInputInfo(inputInfo);
+    }
+
+    /**
+     * 获取公表项中对应的辅检,未查询到时去化验公表项再查
+     *
+     * @param
+     */
+    private void getPacsConfig(List<ConceptIntroduceVO> conceptIntroduceVOList, String pacsName, String hosCode) {
+        // 比对映射表中的辅检项
+        Map<String, Object> pacsMap = pacsConfigFacade.getPacsConfigByMealname(hosCode, pacsName);
+        if (pacsMap != null) {
+            String uniqueName = pacsMap.get("unique_name").toString();
+            if (!"".equals(uniqueName) && uniqueName != null) {
+                String[] uniqueNames = uniqueName.split("、");
+                for (int i = 0; i < uniqueNames.length; i++) {
+                    ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                    conceptIntroduceVO.setName(uniqueNames[i]);
+                    conceptIntroduceVO.setType(6);// 1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标
+                    conceptIntroduceVO.setPosition(1);// 1-摘要,2-全文,5-药品说明书,6-不良反应
+                    conceptIntroduceVOList.add(conceptIntroduceVO);
+
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取公表项中对应的化验,未查询到时去辅检公表项再查
+     *
+     * @param conceptIntroduceVOList
+     * @param
+     */
+    private void getLisConfig(List<ConceptIntroduceVO> conceptIntroduceVOList, String lisName, String hosCode) {
+        // 比对映射表中的化验项
+        Map<String, Object> lisMap = tranLisConfigFacade.getLisConfigByMealName(hosCode, lisName);
+        if (lisMap != null) {
+            String uniqueName = lisMap.get("unique_name").toString();
+            String[] uniqueNames = uniqueName.split("、");
+            for (int i = 0; i < uniqueNames.length; i++) {
+                ConceptIntroduceVO conceptIntroduceVO = new ConceptIntroduceVO();
+                int index =uniqueNames[i].indexOf("-");
+                conceptIntroduceVO.setName(uniqueNames[i].substring(0,index));
+                conceptIntroduceVO.setType(12);// 1-症状,5-化验,6-辅检,7-诊断,8-药品,9-药品大类,10-不良反应,11-药品小类,12-化验公表项,22-指标
+                conceptIntroduceVO.setPosition(1);// 1-摘要,2-全文,5-药品说明书,6-不良反应
+                conceptIntroduceVOList.add(conceptIntroduceVO);
+            }
+        }
+    }
 
 }

+ 22 - 0
tran-service/src/main/java/com/diagbot/facade/TranLisConfigFacade.java

@@ -114,4 +114,26 @@ public class TranLisConfigFacade extends TranLisConfigServiceImpl{
 		}
 		return retMap;
 	}
+
+	/**
+	 * 根据医院编码和his方传过来的mealName,itemName来得到它的uniqueName';
+	 * @param hosCode
+	 * @param name
+	 * @param detailName
+	 * @return
+	 */
+	public TranLisConfig getLisConfigByMealNameAndHosCode(String hosCode,String name,String detailName){
+
+			QueryWrapper<TranLisConfig> lisConfigQueryWrapper = new QueryWrapper<>();
+			lisConfigQueryWrapper
+					.eq("item_name",detailName)
+					.eq("meal_name",name)
+					.eq("is_deleted", IsDeleteEnum.N.getKey())
+					.eq("hospital_code", hosCode);
+			TranLisConfig tranLisConfig = baseMapper.selectOne(lisConfigQueryWrapper);
+			return tranLisConfig;
+
+
+	}
+
 }

+ 2 - 0
tran-service/src/main/java/com/diagbot/mapper/DiseaseDeptMapper.java

@@ -1,7 +1,9 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.entity.DiseaseDept;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.DiseaseIcd;
 
 /**
  * <p>

+ 5 - 0
tran-service/src/main/java/com/diagbot/mapper/DiseaseIcdMapper.java

@@ -1,6 +1,8 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.diagbot.dto.GetDiseaseIcdDTO;
 import com.diagbot.entity.DiseaseIcd;
 
@@ -24,4 +26,7 @@ public interface DiseaseIcdMapper extends BaseMapper<DiseaseIcd> {
      * @return
      */
     public List<GetDiseaseIcdDTO> getDiseaseIcds(Map map);
+
+
+
 }

+ 2 - 0
tran-service/src/main/java/com/diagbot/mapper/PacsConfigMapper.java

@@ -13,4 +13,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface PacsConfigMapper extends BaseMapper<PacsConfig> {
 
+
+
 }

+ 1 - 0
tran-service/src/main/java/com/diagbot/service/DiseaseIcdService.java

@@ -25,4 +25,5 @@ public interface DiseaseIcdService extends IService<DiseaseIcd> {
      */
     public List<GetDiseaseIcdDTO> getDiseaseIcds(Map map);
 
+
 }

+ 2 - 0
tran-service/src/main/java/com/diagbot/service/PacsConfigService.java

@@ -3,6 +3,8 @@ package com.diagbot.service;
 import com.diagbot.entity.PacsConfig;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Map;
+
 /**
  * <p>
  * 辅检项目公表映射配置表 服务类

+ 3 - 0
tran-service/src/main/java/com/diagbot/service/TranLisConfigService.java

@@ -20,4 +20,7 @@ public interface TranLisConfigService extends IService<TranLisConfig> {
 	
 	public List<LisConfigDTO> getLisConfigByhospitalId(LisHospitalCodeVO lisHospitalCodeVO);
 
+
+
+
 }

+ 8 - 0
tran-service/src/main/java/com/diagbot/service/impl/DiseaseIcdServiceImpl.java

@@ -1,7 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.diagbot.dto.GetDiseaseIcdDTO;
+import com.diagbot.entity.DiseaseDept;
 import com.diagbot.entity.DiseaseIcd;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.mapper.DiseaseIcdMapper;
 import com.diagbot.service.DiseaseIcdService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,4 +30,7 @@ public class DiseaseIcdServiceImpl extends ServiceImpl<DiseaseIcdMapper, Disease
     public List<GetDiseaseIcdDTO> getDiseaseIcds(Map map) {
         return baseMapper.getDiseaseIcds(map);
     }
+
+
+
 }

+ 1 - 0
tran-service/src/main/java/com/diagbot/service/impl/PacsConfigServiceImpl.java

@@ -17,4 +17,5 @@ import org.springframework.stereotype.Service;
 @Service
 public class PacsConfigServiceImpl extends ServiceImpl<PacsConfigMapper, PacsConfig> implements PacsConfigService {
 
+
 }

+ 5 - 0
tran-service/src/main/java/com/diagbot/service/impl/TranLisConfigServiceImpl.java

@@ -1,6 +1,9 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.diagbot.dto.LisConfigDTO;
+import com.diagbot.entity.DiseaseIcd;
 import com.diagbot.entity.TranLisConfig;
 import com.diagbot.mapper.TranLisConfigMapper;
 import com.diagbot.service.TranLisConfigService;
@@ -27,4 +30,6 @@ public class TranLisConfigServiceImpl extends ServiceImpl<TranLisConfigMapper, T
 		return baseMapper.getLisConfigByhospitalIds(lisHospitalCodeVO);
 	}
 
+
+
 }

+ 7 - 0
tran-service/src/main/java/com/diagbot/vo/PushJoinVO.java

@@ -177,4 +177,11 @@ public class PushJoinVO {
     //过期时间字符串
     @ApiModelProperty(hidden = true)
     private String expireTimeStr;
+    /**
+     * 规则类型(1:危机值提醒,2:开单合理性,3:管理评估,4:不良反应,5:药物推荐,6:异常值)
+     */
+    @ApiModelProperty(hidden = true)
+    private String ruleType;
+    @ApiModelProperty(hidden = true)
+    private String featureType;
 }

+ 1 - 2
tran-service/src/main/java/com/diagbot/web/PushController.java

@@ -29,7 +29,6 @@ public class PushController {
     @PostMapping("/getDataService")
     @SysLogger("getDataService")
 	public RespDTO<String> getDataService(@RequestBody @Valid PushVO pushVO) {
-		String data=pushFacade.getDataService(pushVO);
-		return RespDTO.onSuc(data);
+		return pushFacade.getDataService(pushVO);
 	}
 }

+ 1 - 0
tran-service/src/main/resources/mapper/DiseaseIcdMapper.xml

@@ -29,4 +29,5 @@
         and status = '1'
         and is_deleted = 'N'
     </select>
+    <select id="getUniqueName" resultType="java.lang.String"></select>
 </mapper>