Browse Source

Merge remote-tracking branch 'origin/debug' into debug

MarkHuang 6 years ago
parent
commit
b85e869574
35 changed files with 815 additions and 130 deletions
  1. 3 3
      config-server/src/main/resources/shared/icss-service-dev.yml
  2. 2 2
      config-server/src/main/resources/shared/icss-service-local.yml
  3. 2 2
      config-server/src/main/resources/shared/icss-service-pro.yml
  4. 2 2
      config-server/src/main/resources/shared/icss-service-test.yml
  5. 37 0
      docs/07.20190318对接相关修改/icss_tran.sql
  6. 4 4
      icss-service/src/main/java/com/diagbot/client/AIServiceClient.java
  7. 4 4
      icss-service/src/main/java/com/diagbot/client/HighRiskServiceClient.java
  8. 4 4
      icss-service/src/main/java/com/diagbot/client/SymptomFeatureClient.java
  9. 8 1
      icss-service/src/main/java/com/diagbot/client/TranServiceClient.java
  10. 3 3
      icss-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java
  11. 3 3
      icss-service/src/main/java/com/diagbot/client/hystrix/HighRiskServiceHystrix.java
  12. 4 4
      icss-service/src/main/java/com/diagbot/client/hystrix/SymptomFeatureHystrix.java
  13. 16 7
      icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java
  14. 58 0
      icss-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java
  15. 3 3
      icss-service/src/main/java/com/diagbot/facade/FeatureFacade.java
  16. 60 0
      icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  17. 72 29
      icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java
  18. 18 3
      icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java
  19. 58 49
      icss-service/src/main/java/com/diagbot/facade/PushFacade.java
  20. 1 0
      icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java
  21. 88 0
      icss-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java
  22. 5 4
      icss-service/src/main/java/com/diagbot/web/EMRController.java
  23. 11 0
      icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java
  24. 30 0
      icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java
  25. 21 0
      icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java
  26. 11 1
      icssman-service/src/main/java/com/diagbot/mapper/RetrievalMappingMapper.java
  27. 9 1
      icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java
  28. 14 0
      icssman-service/src/main/resources/mapper/RetrievalMappingMapper.xml
  29. 36 0
      tran-service/src/main/java/com/diagbot/client/InquiryInfoServiceClient.java
  30. 33 0
      tran-service/src/main/java/com/diagbot/client/hystrix/InquiryInfoServiceHystrix.java
  31. 58 0
      tran-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java
  32. 13 0
      tran-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  33. 88 0
      tran-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java
  34. 27 0
      tran-service/src/main/java/com/diagbot/web/DataServiceController.java
  35. 9 1
      tran-service/src/main/java/com/diagbot/web/InquiryInfoController.java

+ 3 - 3
config-server/src/main/resources/shared/icss-service-dev.yml

@@ -98,7 +98,7 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
-ai:
+bigdata:
   server:
     address: http://192.168.2.234:5008
 
@@ -106,6 +106,6 @@ graph:
   server:
     address: http://192.168.2.234:5003
 
-symptom:
+nlp:
   server:
-    address: http://192.168.2.234:5002
+    address: http://192.168.2.234:5002

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

@@ -98,7 +98,7 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
-ai:
+bigdata:
   server:
     address: http://192.168.2.234:5008
 
@@ -106,6 +106,6 @@ graph:
   server:
     address: http://192.168.2.234:5003
 
-symptom:
+nlp:
   server:
     address: http://192.168.2.234:5002

+ 2 - 2
config-server/src/main/resources/shared/icss-service-pro.yml

@@ -98,7 +98,7 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
-ai:
+bigdata:
   server:
     address: http://192.168.2.234:5008
 
@@ -106,7 +106,7 @@ graph:
   server:
     address: http://192.168.2.234:5003
 
-symptom:
+nlp:
   server:
     address: http://192.168.2.234:5002
 

+ 2 - 2
config-server/src/main/resources/shared/icss-service-test.yml

@@ -98,7 +98,7 @@ mybatis-plus:
     map-underscore-to-camel-case: true
     cache-enabled: false
 
-ai:
+bigdata:
   server:
     address: http://192.168.2.234:5008
 
@@ -106,6 +106,6 @@ graph:
   server:
     address: http://192.168.2.234:5003
 
-symptom:
+nlp:
   server:
     address: http://192.168.2.234:5002

+ 37 - 0
docs/07.20190318对接相关修改/icss_tran.sql

@@ -1,3 +1,40 @@
 use `sys-icss`;
 ALTER TABLE `icss_inquiry_detail`
 ADD COLUMN `content_value`  text NULL COMMENT '内容字符串纯文本' AFTER `content`;
+
+ALTER TABLE icss_question_info MODIFY COLUMN control_type tinyint(4) COMMENT '控件类型(0:无类型,默认值 1:下拉单选 2:下拉多选 3:待定 4:待定 5:数字键盘带单位 6:文本框 7:数字键盘文本框  11:下拉单选括号占位符,有无治疗 99:联合推送)';
+ALTER TABLE icss_question_info MODIFY COLUMN type tinyint(4) COMMENT '类型(1:症状 3:其他史 4:查体,5:化验 6:辅检 7:诊断,8:药品,9:药品分类 21:量表,22:推送指标)';
+ALTER TABLE icss_question_info ADD COLUMN  formula_code varchar(255) COMMENT '公式编码' AFTER `joint`;
+
+
+use `sys-tran`;
+CREATE TABLE `tran_pacs_config` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
+  `meal_name` varchar(100) DEFAULT NULL COMMENT '套餐名',
+  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='辅检项目公表映射配置表';
+
+CREATE TABLE `tran_introduce_title_config` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `hospital_code` varchar(60) DEFAULT NULL COMMENT '医院编码',
+  `item_name` varchar(100) DEFAULT NULL COMMENT '项目名',
+  `unique_name` varchar(100) DEFAULT NULL COMMENT '公表名',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COMMENT='提示信息标签映射表';
+
+
+ALTER TABLE `tran_disease_icd` ADD COLUMN `icss_question_name` varchar(20) NOT NULL COMMENT 'icss疾病名称' AFTER `status`;
+
+ALTER TABLE `tran_hospital_dept` CHANGE `dept_id` `icss_dept_name` varchar(20) DEFAULT NULL COMMENT 'icss科室名称';

+ 4 - 4
icss-service/src/main/java/com/diagbot/client/AIServiceClient.java

@@ -3,18 +3,18 @@ package com.diagbot.client;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
-import com.diagbot.client.hystrix.AIServiceHystrix;
+import com.diagbot.client.hystrix.BigDataServiceHystrix;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
- * @Description:
+ * @Description:调用大数据对接层服务
  * @Author:zhaops
  * @time: 2018/11/20 13:15
  */
-@FeignClient(name = "AI", url = "${ai.server.address}", fallback = AIServiceHystrix.class)
-public interface AIServiceClient {
+@FeignClient(name = "BigData", url = "${bigdata.server.address}", fallback = BigDataServiceHystrix.class)
+public interface BigDataServiceClient {
     @PostMapping(value = "/push-web/algorithm/neural")
     Response<ResponseData> bayesPageData(@RequestBody SearchData searchData);
 }

+ 4 - 4
icss-service/src/main/java/com/diagbot/client/HighRiskServiceClient.java

@@ -3,18 +3,18 @@ package com.diagbot.client;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.SearchData;
-import com.diagbot.client.hystrix.HighRiskServiceHystrix;
+import com.diagbot.client.hystrix.GraphServiceHystrix;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
- * @Description:
+ * @Description:调用知识图谱对接层服务
  * @Author:zhaops
  * @time: 2018/12/21 11:38
  */
-@FeignClient(name = "HighRisk", url = "${graph.server.address}", fallback = HighRiskServiceHystrix.class)
-public interface HighRiskServiceClient {
+@FeignClient(name = "Graph", url = "${graph.server.address}", fallback = GraphServiceHystrix.class)
+public interface GraphServiceClient {
     @PostMapping(value = "/graph-web/graph/highRisk")
     Response<GdbResponse> highRiskPageData(@RequestBody SearchData searchData);
 }

+ 4 - 4
icss-service/src/main/java/com/diagbot/client/SymptomFeatureClient.java

@@ -1,7 +1,7 @@
 package com.diagbot.client;
 
 import com.diagbot.client.bean.Response;
-import com.diagbot.client.hystrix.SymptomFeatureHystrix;
+import com.diagbot.client.hystrix.NLPServiceHystrix;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -10,12 +10,12 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Description:
+ * @Description:调用NLP对接层服务
  * @Author:zhaops
  * @time: 2019/2/26 10:33
  */
-@FeignClient(name = "SymptomFeature", url = "${symptom.server.address}", fallback = SymptomFeatureHystrix.class)
-public interface SymptomFeatureClient {
+@FeignClient(name = "NLP", url = "${nlp.server.address}", fallback = NLPServiceHystrix.class)
+public interface NLPServiceClient {
     @PostMapping(value = "/nlp-web/feature/find_symptom_feature")
     Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text);
 }

+ 8 - 1
icss-service/src/main/java/com/diagbot/client/TranServiceClient.java

@@ -147,7 +147,6 @@ public interface TranServiceClient {
     RespDTO<Boolean> saveInquiryToHis(@RequestBody SaveInquiryToHisVO saveInquiryToHisVO);
 
 
-
     /**
      * 根据医院编码获取化验公表映射关系-itemName不为空
      *
@@ -192,4 +191,12 @@ public interface TranServiceClient {
      */
     @PostMapping("/diseaseIcd/getDiseaseIcdByHosCode")
     RespDTO<Map<String, String>> getDiseaseIcdByHosCode(@RequestBody HosCodeVO hosCodeVO);
+
+    /**
+     * 数据服务模式是否对外对接
+     *
+     * @return
+     */
+    @PostMapping("/dataService/isDocking")
+    RespDTO<Boolean> isDocking();
 }

+ 3 - 3
icss-service/src/main/java/com/diagbot/client/hystrix/AIServiceHystrix.java

@@ -1,6 +1,6 @@
 package com.diagbot.client.hystrix;
 
-import com.diagbot.client.AIServiceClient;
+import com.diagbot.client.BigDataServiceClient;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.ResponseData;
 import com.diagbot.client.bean.SearchData;
@@ -8,13 +8,13 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 /**
- * @Description:
+ * @Description:调用大数据对接层服务
  * @Author:zhaops
  * @time: 2018/11/20 13:15
  */
 @Component
 @Slf4j
-public class AIServiceHystrix implements AIServiceClient {
+public class BigDataServiceHystrix implements BigDataServiceClient {
     @Override
     public Response<ResponseData> bayesPageData(SearchData searchData) {
         log.error("【hystrix】调用{}异常", "bayesPageData");

+ 3 - 3
icss-service/src/main/java/com/diagbot/client/hystrix/HighRiskServiceHystrix.java

@@ -1,6 +1,6 @@
 package com.diagbot.client.hystrix;
 
-import com.diagbot.client.HighRiskServiceClient;
+import com.diagbot.client.GraphServiceClient;
 import com.diagbot.client.bean.GdbResponse;
 import com.diagbot.client.bean.Response;
 import com.diagbot.client.bean.SearchData;
@@ -8,13 +8,13 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 /**
- * @Description:
+ * @Description:调用知识图谱对接层服务
  * @Author:zhaops
  * @time: 2018/12/21 11:48
  */
 @Component
 @Slf4j
-public class HighRiskServiceHystrix implements HighRiskServiceClient {
+public class GraphServiceHystrix implements GraphServiceClient {
     @Override
     public Response<GdbResponse> highRiskPageData(SearchData searchData) {
         log.error("【hystrix】调用{}异常", "highRiskPageData");

+ 4 - 4
icss-service/src/main/java/com/diagbot/client/hystrix/SymptomFeatureHystrix.java

@@ -1,6 +1,6 @@
 package com.diagbot.client.hystrix;
 
-import com.diagbot.client.SymptomFeatureClient;
+import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.Response;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -10,16 +10,16 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Description:
+ * @Description:调用NLP对接层服务
  * @Author:zhaops
  * @time: 2019/2/26 10:33
  */
 @Component
 @Slf4j
-public class SymptomFeatureHystrix implements SymptomFeatureClient {
+public class NLPServiceHystrix implements NLPServiceClient {
 
     @Override
-    public  Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text) {
+    public Response<List<Map<String, Object>>> symptomFeaturePageData(@RequestParam("text") String text) {
         log.error("【hystrix】调用{}异常", "symptomFeaturePageData");
         return null;
     }

+ 16 - 7
icss-service/src/main/java/com/diagbot/client/hystrix/TranServiceHystrix.java

@@ -105,13 +105,11 @@ public class TranServiceHystrix implements TranServiceClient {
         return null;
     }
 
-	@Override
-	public RespDTO<Boolean> saveInquiryToHis(SaveInquiryToHisVO saveInquiryToHisVO) {
-		 log.error("【hystrix】调用{}异常", "saveInquiryToHis");
-		return null;
-	}
-    
-    
+    @Override
+    public RespDTO<Boolean> saveInquiryToHis(SaveInquiryToHisVO saveInquiryToHisVO) {
+        log.error("【hystrix】调用{}异常", "saveInquiryToHis");
+        return null;
+    }
 
 
     //    @Override
@@ -179,4 +177,15 @@ public class TranServiceHystrix implements TranServiceClient {
         log.error("【hystrix】调用{}异常", "getDiseaseIcdByHosCode");
         return null;
     }
+
+    /**
+     * 数据服务模式是否对外对接
+     *
+     * @return
+     */
+    @Override
+    public RespDTO<Boolean> isDocking() {
+        log.error("【hystrix】调用{}异常", "isDocking");
+        return null;
+    }
 }

+ 58 - 0
icss-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjDTO{
+	
+	private Long id;
+	
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+    private Long patientId;
+
+    /**
+     * 就诊序列号
+     */
+    private String inquiryCode;
+
+    /**
+     * 分类(1:门诊,2:住院)
+     */
+    private Integer type;
+
+	
+	private List<String> contentList;
+	
+}

+ 3 - 3
icss-service/src/main/java/com/diagbot/facade/FeatureFacade.java

@@ -1,7 +1,7 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.client.SymptomFeatureClient;
+import com.diagbot.client.NLPServiceClient;
 import com.diagbot.client.bean.Response;
 import com.diagbot.dto.SymptomFeatureDTO;
 import com.diagbot.entity.QuestionInfo;
@@ -25,7 +25,7 @@ import java.util.Map;
 @Component
 public class FeatureFacade {
     @Autowired
-    private SymptomFeatureClient symptomFeatureClient;
+    private NLPServiceClient NLPServiceClient;
     @Autowired
     private QuestionFacade questionFacade;
 
@@ -37,7 +37,7 @@ public class FeatureFacade {
      */
     public List<SymptomFeatureDTO> getSymptomFeature(String text) {
         List<SymptomFeatureDTO> symptomFeatureDTOList = Lists.newLinkedList();
-        Response<List<Map<String, Object>>> res = symptomFeatureClient.symptomFeaturePageData(text);
+        Response<List<Map<String, Object>>> res = NLPServiceClient.symptomFeaturePageData(text);
         if (null == res || null == res.getData()) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "AI没有返回结果");
         }

+ 60 - 0
icss-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -14,9 +14,11 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.TranServiceClient;
+import com.diagbot.dto.EMRIntroduceDetailDTO;
 import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.dto.PatientInfoDTO;
 import com.diagbot.dto.ReadInquiryDTO;
@@ -31,8 +33,11 @@ import com.diagbot.enums.SexTypeEnum;
 import com.diagbot.service.impl.InquiryInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.PatientInfoVO;
 import com.diagbot.vo.ReadInquiryVO;
@@ -271,6 +276,61 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
         return hisInquiryDTOList;
     }
+    
+    /**
+     * 对接-历史病历列表
+     *
+     * @param hisInquirysForDjVO
+     * @return
+     */
+    public List<HisInquirysForDjDTO> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
+    	QueryWrapper<InquiryInfo> queryWrapper = new QueryWrapper<InquiryInfo>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        queryWrapper.eq("hospital_id", hisInquirysForDjVO.getHospitalId());
+        if(hisInquirysForDjVO.getHospitalDeptId()!=null){
+        	queryWrapper.eq("hospital_dept_id", hisInquirysForDjVO.getHospitalDeptId());
+        }
+        if(hisInquirysForDjVO.getDoctorId()!=null){
+        	queryWrapper.eq("doctor_id", hisInquirysForDjVO.getDoctorId());
+        }
+        if (hisInquirysForDjVO.getPatientId() != null) {
+            queryWrapper.eq("patient_id", hisInquirysForDjVO.getPatientId());
+        }
+        if(StringUtil.isNotBlank(hisInquirysForDjVO.getInquiryCode())){
+        	queryWrapper.eq("inquiry_code", hisInquirysForDjVO.getInquiryCode());
+        }
+        if (hisInquirysForDjVO.getType() != null) {
+            queryWrapper.eq("type", hisInquirysForDjVO.getType());
+        }
+        if (hisInquirysForDjVO.getSign() != null) {
+            queryWrapper.eq("sign", hisInquirysForDjVO.getSign());
+        }
+        if (hisInquirysForDjVO.getStartDate() != null) {
+            queryWrapper.ge("gmt_create", hisInquirysForDjVO.getStartDate());
+        }
+        if (hisInquirysForDjVO.getEndDate() != null) {
+            queryWrapper.le("gmt_create", hisInquirysForDjVO.getEndDate());
+        }
+        if (hisInquirysForDjVO.getOrderType() == 1) {
+            queryWrapper.orderByDesc("gmt_modified");
+        } else if (hisInquirysForDjVO.getOrderType() == 2) {
+            queryWrapper.orderByAsc("gmt_modified");
+        }
+        List<InquiryInfo> inquiryInfoList = this.list(queryWrapper);
+        if (ListUtil.isEmpty(inquiryInfoList)) {
+            return null;
+        }
+        
+        Map<Long, List<InquiryDetail>> inquiryDetailMap = inquiryDetailFacade.getDetailsByInquryIds(inquiryInfoList.stream().map(i -> i.getId()).collect(Collectors.toList()));
+        List<HisInquirysForDjDTO> hisInquirysForDjDTOList = BeanUtil.listCopyTo(inquiryInfoList, HisInquirysForDjDTO.class);
+        
+        hisInquirysForDjDTOList.forEach(i->{
+        	i.setContentList(inquiryDetailMap.get(i.getId()).stream().map(k->k.getContentValue()).collect(Collectors.toList()));
+        });
+        
+        return hisInquirysForDjDTOList;
+    }
+    
 
     /**
      * 病历详情

+ 72 - 29
icss-service/src/main/java/com/diagbot/facade/IntroduceInfoFacade.java

@@ -26,6 +26,7 @@ import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -45,6 +46,8 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
     QuestionFacade questionFacade;
     @Autowired
     TranServiceClient tranServiceClient;
+    @Autowired
+    LisMappingFacade lisMappingFacade;
 
     /**
      * 根据标签id获取提示信息
@@ -156,6 +159,7 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
      * @return
      */
     public List<EMRIntroduceDetailDTO> getIntroduceByEMR(EMRIntroduceVO emrIntroduceVO) {
+        Boolean isDocking = tranServiceClient.isDocking().data;
         //入参处理
         HosCodeVO hosCodeVO = new HosCodeVO();
         hosCodeVO.setHosCode(emrIntroduceVO.getHosCode());
@@ -165,47 +169,81 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         if (type.equals(QuestionTypeEnum.Lis.getKey())) {
             if (StringUtil.isNotBlank(emrIntroduceVO.getName())) {
                 if (StringUtil.isNotBlank(emrIntroduceVO.getDetailName())) {
-                    RespDTO<Map<String, Map<String, String>>> respLisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO);
-                    if (RespDTOUtil.respIsNG(respLisConfigMap)) {
-                        throw new CommonException(CommonErrorCode.RPC_ERROR);
+                    Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
+                    if (isDocking) {
+                        RespDTO<Map<String, Map<String, String>>> respLisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO);
+                        if (RespDTOUtil.respIsNG(respLisConfigMap)) {
+                            throw new CommonException(CommonErrorCode.RPC_ERROR);
+                        }
+                        lisConfigMap = respLisConfigMap.data;
+                    } else {
+                        lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
                     }
-                    Map<String, Map<String, String>> lisConfigMap = respLisConfigMap.data;
+
                     uniqueName = lisConfigMap.get(emrIntroduceVO.getName()).get(emrIntroduceVO.getDetailName());
                 } else {
-                    RespDTO<Map<String, String>> respLisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO);
-                    if (RespDTOUtil.respIsNG(respLisConfigMap_emptyItemName)) {
-                        throw new CommonException(CommonErrorCode.RPC_ERROR);
+                    Map<String, String> lisConfigMap_emptyItemName = new LinkedHashMap<>();
+                    if (isDocking) {
+                        RespDTO<Map<String, String>> respLisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO);
+                        if (RespDTOUtil.respIsNG(respLisConfigMap_emptyItemName)) {
+                            throw new CommonException(CommonErrorCode.RPC_ERROR);
+                        }
+                        lisConfigMap_emptyItemName = respLisConfigMap_emptyItemName.data;
+                    } else {
+                        lisConfigMap_emptyItemName = lisMappingFacade.getLisConfig_EmptyItemName();
                     }
-                    Map<String, String> lisConfigMap_emptyItemName = respLisConfigMap_emptyItemName.data;
                     uniqueName = lisConfigMap_emptyItemName.get(emrIntroduceVO.getName());
                 }
             }
         } else if (type.equals(QuestionTypeEnum.Pacs.getKey())) {
-            RespDTO<Map<String, String>> respPacsConfigMap = tranServiceClient.getPacsConfigByHosCode(hosCodeVO);
-            if (RespDTOUtil.respIsNG(respPacsConfigMap)) {
-                throw new CommonException(CommonErrorCode.RPC_ERROR);
+            if (isDocking) {
+                RespDTO<Map<String, String>> respPacsConfigMap = tranServiceClient.getPacsConfigByHosCode(hosCodeVO);
+                if (RespDTOUtil.respIsNG(respPacsConfigMap)) {
+                    throw new CommonException(CommonErrorCode.RPC_ERROR);
+                }
+                Map<String, String> pacsConfigMap = respPacsConfigMap.data;
+                uniqueName = pacsConfigMap.get(emrIntroduceVO.getName());
+            } else {
+                uniqueName = emrIntroduceVO.getName();
+            }
+        } else if (type.equals(QuestionTypeEnum.Disease.getKey())) {
+            if (isDocking) {
+                RespDTO<Map<String, String>> respDisMap = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
+                if (RespDTOUtil.respIsNG(respDisMap)) {
+                    throw new CommonException(CommonErrorCode.RPC_ERROR);
+                }
+                Map<String, String> disMap = respDisMap.data;
+                uniqueName = disMap.get(emrIntroduceVO.getName());
+            } else {
+                uniqueName = emrIntroduceVO.getName();
             }
-            Map<String, String> pacsConfigMap = respPacsConfigMap.data;
-            uniqueName = pacsConfigMap.get(emrIntroduceVO.getName());
         }
 
-        //未找到公表映射项目
+        //未找到映射标签名称
         if (uniqueName == null || StringUtil.isBlank(uniqueName)) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "项目未找到");
         }
 
-        RespDTO<Map<String, String>> respTitleMappingMap = tranServiceClient.getTitleMappingHosCode(hosCodeVO);
-        Map<String, String> titleMappingMap = respTitleMappingMap.data;
         String[] titles = emrIntroduceVO.getTitles();
+        //对接标题映射
         Map<String, String> titleMapping = new LinkedHashMap<>();
         List<String> uniqueTitleList = Lists.newLinkedList();
         if (ArrayUtil.isNotEmpty(titles)) {
-            for (String title : titles) {
-                String uniqueTitle = titleMappingMap.get(title);
-                titleMapping.put(title, uniqueTitle);
-                if (StringUtil.isNotBlank(uniqueTitle)) {
-                    uniqueTitleList.add(uniqueTitle);
+            if (isDocking) {
+                RespDTO<Map<String, String>> respTitleMappingMap = tranServiceClient.getTitleMappingHosCode(hosCodeVO);
+                if (RespDTOUtil.respIsNG(respTitleMappingMap)) {
+                    throw new CommonException(CommonErrorCode.RPC_ERROR);
+                }
+                Map<String, String> titleMappingMap = respTitleMappingMap.data;
+                for (String title : titles) {
+                    String uniqueTitle = titleMappingMap.get(title);
+                    titleMapping.put(title, uniqueTitle);
+                    if (StringUtil.isNotBlank(uniqueTitle)) {
+                        uniqueTitleList.add(uniqueTitle);
+                    }
                 }
+            } else {
+                uniqueTitleList = Arrays.asList(titles);
             }
         }
 
@@ -244,17 +282,22 @@ public class IntroduceInfoFacade extends IntroduceInfoServiceImpl {
         List<IntroduceDetail> introduceDetailList = introduceDetailFacade.list(introduceDetailQueryWrapper);
         List<EMRIntroduceDetailDTO> retList = Lists.newLinkedList();
         if (ArrayUtil.isNotEmpty(emrIntroduceVO.getTitles())) {
-            for (Map.Entry<String, String> entry : titleMapping.entrySet()) {
-                EMRIntroduceDetailDTO detailDTO = new EMRIntroduceDetailDTO();
-                detailDTO.setTitle(entry.getKey());
-                if (StringUtil.isNotBlank(entry.getValue())) {
-                    for (IntroduceDetail introduceDetail : introduceDetailList) {
-                        if (entry.getValue().equals(introduceDetail.getTitle())) {
-                            detailDTO.setText(introduceDetail.getText());
+            //对接模式,返回原标题
+            if (isDocking) {
+                for (Map.Entry<String, String> entry : titleMapping.entrySet()) {
+                    EMRIntroduceDetailDTO detailDTO = new EMRIntroduceDetailDTO();
+                    detailDTO.setTitle(entry.getKey());
+                    if (StringUtil.isNotBlank(entry.getValue())) {
+                        for (IntroduceDetail introduceDetail : introduceDetailList) {
+                            if (entry.getValue().equals(introduceDetail.getTitle())) {
+                                detailDTO.setText(introduceDetail.getText());
+                            }
                         }
                     }
+                    retList.add(detailDTO);
                 }
-                retList.add(detailDTO);
+            } else {
+                retList = BeanUtil.listCopyTo(introduceDetailList, EMRIntroduceDetailDTO.class);
             }
         } else {
             retList = BeanUtil.listCopyTo(introduceDetailList, EMRIntroduceDetailDTO.class);

+ 18 - 3
icss-service/src/main/java/com/diagbot/facade/LisMappingFacade.java

@@ -20,14 +20,15 @@ import java.util.Map;
 public class LisMappingFacade extends LisMappingServiceImpl {
 
     /**
-     * 获取化验公表映射关系 Map<mealName,Map<itemName,uniqueName>>
+     * 获取化验公表映射关系-itemName不为空 Map<mealName,Map<itemName,uniqueName>>
      *
      * @return
      */
-    public Map<String, Map<String, String>> getLisMapping() {
+    public Map<String, Map<String, String>> getLisMapping_NotEmptyItemName() {
         Map<String, Map<String, String>> retMap = new LinkedHashMap<>();
         QueryWrapper<LisMapping> lisMappingQueryWrapper = new QueryWrapper<>();
-        lisMappingQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        lisMappingQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                isNotNull("item_name").and(i->i.ne("item_name",""));
         List<LisMapping> lisMappingList = this.list(lisMappingQueryWrapper);
         Map<String, List<LisMapping>> lisMappingMap = EntityUtil.makeEntityListMap(lisMappingList, "mealName");
         for (Map.Entry<String, List<LisMapping>> entry : lisMappingMap.entrySet()) {
@@ -40,6 +41,20 @@ public class LisMappingFacade extends LisMappingServiceImpl {
         return retMap;
     }
 
+    /**
+     * 根据医院编码获取化验公表映射关系-itemName为空 Map<mealName,uniqueName>
+     *
+     * @return
+     */
+    public Map<String, String> getLisConfig_EmptyItemName() {
+        QueryWrapper<LisMapping> lisMappingQueryWrapper = new QueryWrapper<>();
+        lisMappingQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
+                isNull("item_name").or(i -> i.eq("item_name", ""));
+        List<LisMapping> lisMappingList = this.list(lisMappingQueryWrapper);
+        Map<String, String> retMap = EntityUtil.makeMapWithKeyValue(lisMappingList, "mealName", "uniqueName");
+        return retMap;
+    }
+
     /**
      * 化验公表映射关系  Map<uniqueName,List<mealName>>
      *

+ 58 - 49
icss-service/src/main/java/com/diagbot/facade/PushFacade.java

@@ -2,8 +2,8 @@ package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.diagbot.client.AIServiceClient;
-import com.diagbot.client.HighRiskServiceClient;
+import com.diagbot.client.BigDataServiceClient;
+import com.diagbot.client.GraphServiceClient;
 import com.diagbot.client.TranServiceClient;
 import com.diagbot.client.bean.FeatureRate;
 import com.diagbot.client.bean.GdbResponse;
@@ -14,7 +14,6 @@ import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.PushEMRDTO;
 import com.diagbot.dto.PushKYJDTO;
 import com.diagbot.dto.QuestionDTO;
-import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.DeptInfo;
 import com.diagbot.entity.DeptVital;
 import com.diagbot.entity.QuestionInfo;
@@ -58,7 +57,7 @@ import java.util.stream.Collectors;
 @Component
 public class PushFacade {
     @Autowired
-    private AIServiceClient aiServiceClient;
+    private BigDataServiceClient bigDataServiceClient;
     @Autowired
     private QuestionFacade questionFacade;
     @Autowired
@@ -68,7 +67,7 @@ public class PushFacade {
     @Autowired
     private TreatmentFacade treatmentFacade;
     @Autowired
-    private HighRiskServiceClient highRiskServiceClient;
+    private GraphServiceClient graphServiceClient;
     @Autowired
     private LisMappingFacade lisMappingFacade;
     @Autowired
@@ -85,12 +84,14 @@ public class PushFacade {
         searchData.setAge(pushVO.getAge());
         searchData.setSymptom(pushVO.getSymptom());
         searchData.setVital(pushVO.getVital());
-
-
         searchData.setPacs(pushVO.getPacs());
         searchData.setPast(pushVO.getPast());
         searchData.setOther(pushVO.getOther());
         searchData.setDiag(pushVO.getDiag());
+        searchData.setFeatureType(pushVO.getFeatureType());
+        searchData.setSysCode("1");
+        searchData.setLength(10);
+
         switch (pushVO.getSex()) {
             case 1:
                 searchData.setSex("M");
@@ -105,28 +106,29 @@ public class PushFacade {
 
         //化验项映射,转公表
         if (pushVO.getLis().size() > 0) {
-            Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping();
+            Map<String, Map<String, String>> lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
+            Map<String, String> lisConfigWithEmptyItemNameMap = lisMappingFacade.getLisConfig_EmptyItemName();
             for (LisResultVO lisResultVO : pushVO.getLis()) {
-                //source=0 icss页面数据,source=1 外部导入数据
+                //source=0 icss页面数据,source=1 外部导入数据,外部导入数据不处理
                 if (!lisResultVO.getSource().equals(LisSourceEnum.Inner.getKey())) {
                     continue;
                 }
-                if (StringUtil.isNotBlank(lisResultVO.getName()) && lisConfigMap.get(lisResultVO.getName()) != null) {
-                    Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
-                    if (StringUtil.isNotBlank(lisResultVO.getDetailName()) && StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
-                        lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                if (StringUtil.isNotBlank(lisResultVO.getName())) {
+                    if (StringUtil.isNotBlank(lisResultVO.getDetailName())) {
+                        Map<String, String> detailMap = lisConfigMap.get(lisResultVO.getName());
+                        if (StringUtil.isNotBlank(detailMap.get(lisResultVO.getDetailName()))) {
+                            lisResultVO.setUniqueName(detailMap.get(lisResultVO.getDetailName()));
+                        }
+                    } else {
+                        lisResultVO.setUniqueName(lisConfigWithEmptyItemNameMap.get(lisResultVO.getName()));
                     }
                 }
             }
         }
-
         List<LisResult> lisResultList = BeanUtil.listCopyTo(pushVO.getLis(), LisResult.class);
         searchData.setLisArr(lisResultList);
-        searchData.setFeatureType(pushVO.getFeatureType());
-        searchData.setSysCode("1");
-        searchData.setLength(10);
 
-        Response<ResponseData> res = aiServiceClient.bayesPageData(searchData);
+        Response<ResponseData> res = bigDataServiceClient.bayesPageData(searchData);
         if (null == res || null == res.getData()) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "AI没有返回结果");
         }
@@ -203,7 +205,7 @@ public class PushFacade {
             highRiskMap.put("disease", String.join(",", diseaseNameList));
             SearchData searchData = new SearchData();
             searchData.setDiag(String.join(",", diseaseNameList));
-            Response<GdbResponse> graphRes = highRiskServiceClient.highRiskPageData(searchData);
+            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
             if (graphRes != null) {
                 Map<String, String> graphResult = graphRes.getData().getResult();
                 if (graphResult.size() > 0) {
@@ -452,37 +454,17 @@ public class PushFacade {
                 vitalDTO.add(questionDTO);
             }
         }
-        /*if (deptVitalList.size() > 0) {
-            Map<Long, DeptVital> deptVitalMap = EntityUtil.makeEntityMap(deptVitalList, "vitalId");
-            //排序
-            QueryWrapper<VitalOrder> vitalOrderQueryWrapper = new QueryWrapper<>();
-            vitalOrderQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey()).
-                    in("question_id", deptVitalMap.keySet()).
-                    orderByAsc("order_no");
-            List<VitalOrder> vitalOrderList = vitalOrderFacade.list(vitalOrderQueryWrapper);
-            Map<Long, VitalOrder> vitalOrderMap = EntityUtil.makeEntityMap(vitalOrderList, "questionId");
-            //标签列表
-            for (Map.Entry<Long, VitalOrder> entry : vitalOrderMap.entrySet()) {
-                QuestionVO questionVO = new QuestionVO();
-                questionVO.setAge(pushVO.getAge());
-                questionVO.setSexType(pushVO.getSex());
-                questionVO.setId(entry.getKey());
-                QuestionDTO questionDTO = questionFacade.getById(questionVO);
-                if (questionDTO != null) {
-                    vitalDTO.add(questionDTO);
-                }
-            }
-        }*/
         return vitalDTO;
     }
 
     /**
-     * 电子病历评级推理
+     * 电子病历评级-数据服务模式推理
      *
      * @param emrPushVO
      * @return
      */
     public PushEMRDTO pushEMR(EMRPushVO emrPushVO) {
+        Boolean isDocking = tranServiceClient.isDocking().data;
         PushEMRDTO pushEMRDTO = new PushEMRDTO();
         HosCodeVO hosCodeVO = new HosCodeVO();
         hosCodeVO.setHosCode(emrPushVO.getHosCode());
@@ -490,10 +472,15 @@ public class PushFacade {
         BeanUtil.copyProperties(emrPushVO, pushVO);
         //化验项转公表内容,参数处理
         if (ListUtil.isNotEmpty(pushVO.getLis())) {
-            RespDTO<Map<String, Map<String, String>>> respLisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO);
-            Map<String, Map<String, String>> lisConfigMap = respLisConfigMap.data;
-            RespDTO<Map<String, String>> respLisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO);
-            Map<String, String> lisConfigMap_emptyItemName = respLisConfigMap_emptyItemName.data;
+            Map<String, Map<String, String>> lisConfigMap = new LinkedHashMap<>();
+            Map<String, String> lisConfigMap_emptyItemName = new LinkedHashMap<>();
+            if (isDocking) {
+                lisConfigMap = tranServiceClient.getLisConfigByHosCode_NotEmptyItemName(hosCodeVO).data;
+                lisConfigMap_emptyItemName = tranServiceClient.getLisConfigByHosCode_EmptyItemName(hosCodeVO).data;
+            } else {
+                lisConfigMap = lisMappingFacade.getLisMapping_NotEmptyItemName();
+                lisConfigMap_emptyItemName = lisMappingFacade.getLisConfig_EmptyItemName();
+            }
             List<LisResultVO> lisResultVOList = pushVO.getLis();
             for (LisResultVO lisResultVO : lisResultVOList) {
                 if (StringUtil.isNotBlank(lisResultVO.getName())) {
@@ -527,9 +514,9 @@ public class PushFacade {
         }
         if (featureTypeSet.contains(String.valueOf(QuestionTypeEnum.Disease.getKey()))) {
             List<FeatureRate> dis = data.getDis();
+            List<String> disNameList = dis.stream().map(disease -> disease.getFeatureName()).collect(Collectors.toList());
             Map<String, List<String>> retDisMap = new LinkedHashMap<>();
-            RespDTO<Map<String, String>> respDisDTO = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO);
-            Map<String, String> disMap = respDisDTO.data;
+            Map<String, String> disMap = tranServiceClient.getDiseaseIcdByHosCode(hosCodeVO).data;
 
             //诊断分类
             for (FeatureRate featureRate : dis) {
@@ -542,11 +529,33 @@ public class PushFacade {
                     if (retDisMap.get(disClass) != null) {
                         retDisList = retDisMap.get(disClass);
                     }
-                    //转icd10名称
-                    retDisList.add(disMap.get(featureRate.getFeatureName()));
+                    if (isDocking) {
+                        //对接模式转icd10名称
+                        retDisList.add(disMap.get(featureRate.getFeatureName()));
+                    } else {
+                        retDisList.add(featureRate.getFeatureName());
+                    }
                     retDisMap.put(disClass, retDisList);
                 }
             }
+            //警惕
+            SearchData searchData = new SearchData();
+            searchData.setDiag(String.join(",", disNameList));
+            Response<GdbResponse> graphRes = graphServiceClient.highRiskPageData(searchData);
+            Map<String, String> graphResult = graphRes.getData().getResult();
+            if (graphResult.size() > 0) {
+                List<String> highRiskDisList = Lists.newLinkedList();
+                for (Map.Entry<String, String> entry : graphResult.entrySet()) {
+                    if (entry.getValue().equals("1")) {
+                        if (isDocking) {
+                            highRiskDisList.add(disMap.get(entry.getKey()));
+                        } else {
+                            highRiskDisList.add(entry.getKey());
+                        }
+                    }
+                }
+                retDisMap.put("警惕", highRiskDisList);
+            }
             pushEMRDTO.setDis(retDisMap);
         }
         return pushEMRDTO;

+ 1 - 0
icss-service/src/main/java/com/diagbot/vo/EMRIntroduceVO.java

@@ -21,4 +21,5 @@ public class EMRIntroduceVO {
     private String name;
     private String detailName;
     private String[] titles;
+    private String icdCode; //诊断icd10编码
 }

+ 88 - 0
icss-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java

@@ -0,0 +1,88 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjVO {
+	
+	/**
+     * 医院id
+     */
+	@ApiModelProperty(value="医院id",required=true)
+	@NotNull(message="医院id必传")
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+	@ApiModelProperty(value="科室id")
+	//@NotNull(message="科室id必传")
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+	@ApiModelProperty(value="医生id")
+	//@NotNull(message="医生id必传")
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+	@ApiModelProperty(value="患者id",required=true)
+	@NotNull(message="患者id必传")
+    private Long patientId;
+	
+	/**
+     * 就诊序列号
+     */
+	@ApiModelProperty(value="就诊序列号")
+    private String inquiryCode;
+    
+    /**
+     * 病历分类(1:门诊,2:住院)
+     */
+	@ApiModelProperty(value="病历分类(1:门诊,2:住院)")
+    private Integer type;
+    
+    /**
+     * 内容输入类型:0:结构化 1:文本模式
+     */
+	@ApiModelProperty(value="内容输入类型:0:结构化 1:文本模式")
+    private Integer sign;
+    
+	/**
+	 * 开始时间
+	 */
+	@ApiModelProperty(value="开始时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date startDate;
+	
+	/**
+	 * 结束时间
+	 */
+	@ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date endDate;
+	
+	/**
+	 * 排序类型:1、时间降序;2、时间升序; 
+	 */
+	@ApiModelProperty(value="排序类型:1、时间降序;2、时间升序;")
+	private Integer orderType=1;
+	   
+}

+ 5 - 4
icss-service/src/main/java/com/diagbot/web/EMRController.java

@@ -36,10 +36,11 @@ public class EMRController {
 
     @ApiOperation(value = "电子病历解读[by:zhaops]",
             notes = "hosCode: 医院编码,必填,String<br>" +
-                    "type: 检验检查类型,5-检验,6-检查,单选必填,Integer<br>" +
-                    "name: 套餐名称(检验检查),必填,String<br>" +
+                    "type: 检验检查类型,5-检验,6-检查,7-诊断,单选必填,Integer<br>" +
+                    "name: 名称(检验检查诊断),必填,String<br>" +
                     "detailName: 项目名称(检验选填,检查不填),String<br>" +
-                    "titles: 提示信息标题列表,String数组<br>")
+                    "titles: 提示信息标题列表,String数组<br>"+
+                    "icdCode: 诊断icd10编码,String<br>")
     @PostMapping("/getIntroduceByEMR")
     public RespDTO<List<EMRIntroduceDetailDTO>> getIntroduceByEMR(@RequestBody EMRIntroduceVO emrIntroduceVO) {
         List<EMRIntroduceDetailDTO> data = introduceInfoFacade.getIntroduceByEMR(emrIntroduceVO);
@@ -65,7 +66,7 @@ public class EMRController {
                     "lis:source:数据来源(必填)0-内部来源,1-外部来源,Integer<br>" +
                     "pacs:辅检,String<br>" +
                     "diag:诊断,String<br>" +
-                    "featureType:类型(多选必填),5:检验,6:检查,String<br>")
+                    "featureType:类型(多选必填),5:检验,6:检查,7:诊断,String<br>")
     @PostMapping("/pushEMR")
     @SysLogger("pushEMR")
     public RespDTO<PushEMRDTO> pushEMR(@RequestBody @Valid EMRPushVO emrPushVO) {

+ 11 - 0
icss-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -16,18 +16,21 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetInquiryDetailDTO;
 import com.diagbot.dto.GetLastOtherDTO;
 import com.diagbot.dto.HisInquiryDTO;
+import com.diagbot.dto.HisInquirysForDjDTO;
 import com.diagbot.dto.ReadInquiryDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SaveInquiryDTO;
 import com.diagbot.facade.InquiryInfoFacade;
 import com.diagbot.vo.GetInquiryDetailVO;
 import com.diagbot.vo.GetLastOtherVO;
+import com.diagbot.vo.HisInquirysForDjVO;
 import com.diagbot.vo.HisInquirysVO;
 import com.diagbot.vo.ReadInquiryVO;
 import com.diagbot.vo.SaveInquiryVO;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * @author rengb
@@ -70,6 +73,14 @@ public class InquiryInfoController {
     public RespDTO<List<HisInquiryDTO>> hisInquirys(@Valid @RequestBody HisInquirysVO hisInquirysVO) {
         return RespDTO.onSuc(inquiryInfoFacade.hisInquirys(hisInquirysVO));
     }
+    
+    @ApiOperation(value = "对接-历史病历列表[by:rengb]")
+    @PostMapping("/hisInquirysForDj")
+    @SysLogger("hisInquirysForDj")
+    @ApiIgnore
+    public RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(@Valid @RequestBody HisInquirysForDjVO hisInquirysForDjVO) {
+        return RespDTO.onSuc(inquiryInfoFacade.hisInquirysForDj(hisInquirysForDjVO));
+    }
 
     @ApiOperation(value = "病历详情[by:rengb]")
     @PostMapping("/getInquiryDetail")

+ 30 - 0
icssman-service/src/main/java/com/diagbot/facade/QuestionFacade.java

@@ -492,6 +492,36 @@ public class QuestionFacade extends QuestionInfoServiceImpl {
         paramMap.put("notTagType", questionIndexVO.getNotTagType());
         return this.index(paramMap);
     }
+    
+    /**
+     * 别名新增标签检索
+     *
+     * @param questionIndexVO
+     * @return
+     */
+    public List<QuestionInfo> indexRev(QuestionIndexVO questionIndexVO) {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("age", questionIndexVO.getAge());
+        paramMap.put("sexType", questionIndexVO.getSexType());
+        paramMap.put("tagName", questionIndexVO.getTagName());
+        paramMap.put("type", questionIndexVO.getType());
+        paramMap.put("controlType", questionIndexVO.getControlType());
+        paramMap.put("notIds", questionIndexVO.getNotIds());
+        paramMap.put("tagType", questionIndexVO.getTagType());
+        paramMap.put("existName", questionIndexVO.getExistName());
+        paramMap.put("notTagType", questionIndexVO.getNotTagType());
+        List<QuestionInfo> list = this.index(paramMap);
+        if(ListUtil.isEmpty(list)){
+        	return list;
+        }
+        Map<Long,Long> couMap = retrievalMappingFacade.getMapCouByQuesIds(list.stream().map(i->i.getId()).collect(Collectors.toList()));
+        return list.stream().filter(i->{
+        	if(couMap.get(i.getId())!=null){
+        		return false;
+        	}
+        	return true;
+        }).collect(Collectors.toList());
+    }
 
 
     /**

+ 21 - 0
icssman-service/src/main/java/com/diagbot/facade/RetrievalMappingFacade.java

@@ -3,9 +3,14 @@
  */
 package com.diagbot.facade;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.stereotype.Component;
 
 import com.diagbot.service.impl.RetrievalMappingServiceImpl;
+import com.diagbot.util.ListUtil;
 
 /**
  * @author rgb
@@ -14,6 +19,22 @@ import com.diagbot.service.impl.RetrievalMappingServiceImpl;
  */
 @Component
 public class RetrievalMappingFacade extends RetrievalMappingServiceImpl {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return questionId-标签id,cou-别名个数
+	 */
+	public Map<Long,Long> getMapCouByQuesIds(List<Long> ids){
+		Map<Long,Long> retMap = new HashMap<Long,Long>();
+		if(ListUtil.isEmpty(ids)){
+			return retMap;
+		}
+		this.baseMapper.getMapCouByQuesIds(ids).forEach(i->{
+			retMap.put((Long)(i.get("questionId")), (Long)(i.get("cou")));
+		});
+		return retMap;
+	}
 
 
 }

+ 11 - 1
icssman-service/src/main/java/com/diagbot/mapper/RetrievalMappingMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.RetrievalMapping;
+import java.util.List;
+import java.util.Map;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.RetrievalMapping;
 
 /**
  * <p>
@@ -12,5 +15,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-12-03
  */
 public interface RetrievalMappingMapper extends BaseMapper<RetrievalMapping> {
+	
+	/**
+	 * 根据标签id集合获取标签别名个数
+	 * @param ids
+	 * @return map中questionId-标签id,cou-别名个数
+	 */
+	List<Map<String,Object>> getMapCouByQuesIds(List<Long> ids);
 
 }

+ 9 - 1
icssman-service/src/main/java/com/diagbot/web/QuestionInfoController.java

@@ -73,7 +73,15 @@ public class QuestionInfoController {
         List<QuestionInfo> data = questionFacade.indexFac(questionIndexVO);
         return RespDTO.onSuc(data);
     }
-
+    
+    @ApiOperation(value = "别名新增标签检索[by:rengb]",
+            notes = "")
+    @PostMapping("/indexRev")
+    @SysLogger("indexRev")
+    public RespDTO<List<QuestionInfo>> indexRev(@RequestBody QuestionIndexVO questionIndexVO) {
+        List<QuestionInfo> data = questionFacade.indexRev(questionIndexVO);
+        return RespDTO.onSuc(data);
+    }
 
     @ApiOperation(value = "获取特殊标签(同伴|无)[by:zhoutg]",
             notes = "")

+ 14 - 0
icssman-service/src/main/resources/mapper/RetrievalMappingMapper.xml

@@ -15,5 +15,19 @@
         <result column="show_type" property="showType" />
         <result column="remark" property="remark" />
     </resultMap>
+    
+    <select id="getMapCouByQuesIds" parameterType="list" resultType="map">
+    	select 
+    	a.question_id as questionId,
+    	count(1) as cou
+		from icss_retrieval_mapping a
+		join icss_retrieval b on a.retrieval_id=b.id
+		where a.is_deleted = 'N' and b.is_deleted = 'N'
+		and a.question_id in
+		<foreach collection="list" open="(" close=")" separator="," item="quid">
+			#{quid}
+		</foreach>
+		group by a.question_id
+    </select>
 
 </mapper>

+ 36 - 0
tran-service/src/main/java/com/diagbot/client/InquiryInfoServiceClient.java

@@ -0,0 +1,36 @@
+package com.diagbot.client;
+
+import java.util.List;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import com.diagbot.client.hystrix.InquiryInfoServiceHystrix;
+import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.HisInquirysForDjVO;
+
+
+/**
+ * @Description: 调用问诊服务
+ * @author: rengb
+ * @time: 2019/3/19 9:52
+ */
+@FeignClient(value = "icss-service", fallback = InquiryInfoServiceHystrix.class)
+public interface InquiryInfoServiceClient {
+
+	
+	/**
+     * 对接-历史病历列表
+     *
+     * @param hisInquirysForDjVO
+     * @return
+     */
+    @PostMapping("/inquiryInfo/hisInquirysForDj")
+    RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(@RequestBody HisInquirysForDjVO hisInquirysForDjVO);
+
+}
+
+
+

+ 33 - 0
tran-service/src/main/java/com/diagbot/client/hystrix/InquiryInfoServiceHystrix.java

@@ -0,0 +1,33 @@
+package com.diagbot.client.hystrix;
+
+import java.util.List;
+
+import org.springframework.stereotype.Component;
+
+import com.diagbot.client.InquiryInfoServiceClient;
+import com.diagbot.dto.HisInquirysForDjDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.vo.HisInquirysForDjVO;
+
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * @Description: 调用问诊服务
+ * @author: rengb
+ * @time: 2019/3/19 9:52
+ */
+@Component
+@Slf4j
+public class InquiryInfoServiceHystrix implements InquiryInfoServiceClient {
+
+	@Override
+	public RespDTO<List<HisInquirysForDjDTO>> hisInquirysForDj(HisInquirysForDjVO hisInquirysForDjVO) {
+		log.error("【hystrix】调用{}异常", "hisInquirysForDj");
+		return null;
+	}
+	
+	
+
+
+}

+ 58 - 0
tran-service/src/main/java/com/diagbot/dto/HisInquirysForDjDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjDTO{
+	
+	private Long id;
+	
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+    private Long patientId;
+
+    /**
+     * 就诊序列号
+     */
+    private String inquiryCode;
+
+    /**
+     * 分类(1:门诊,2:住院)
+     */
+    private Integer type;
+
+	
+	private List<String> contentList;
+	
+}

+ 13 - 0
tran-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -1,7 +1,11 @@
 package com.diagbot.facade;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import com.diagbot.client.InquiryInfoServiceClient;
+import com.diagbot.vo.HisInquirysForDjVO;
+
 /**
  * @Description: 对接问诊信息业务逻辑
  * @author: rengb
@@ -9,5 +13,14 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class InquiryInfoFacade {
+	
+	@Autowired
+	private InquiryInfoServiceClient inquiryInfoServiceClient;
+	
+	public Object hisInquirysForDj(){
+		HisInquirysForDjVO hisInquirysForDjVO = null;
+		inquiryInfoServiceClient.hisInquirysForDj(hisInquirysForDjVO);
+		return null;
+	}
 
 }

+ 88 - 0
tran-service/src/main/java/com/diagbot/vo/HisInquirysForDjVO.java

@@ -0,0 +1,88 @@
+package com.diagbot.vo;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2019/3/19 13:56
+ */
+@Getter
+@Setter
+public class HisInquirysForDjVO {
+	
+	/**
+     * 医院id
+     */
+	@ApiModelProperty(value="医院id",required=true)
+	@NotNull(message="医院id必传")
+    private Long hospitalId;
+
+    /**
+     * 科室id
+     */
+	@ApiModelProperty(value="科室id")
+	//@NotNull(message="科室id必传")
+    private Long hospitalDeptId;
+
+    /**
+     * 医生id
+     */
+	@ApiModelProperty(value="医生id")
+	//@NotNull(message="医生id必传")
+    private Long doctorId;
+
+    /**
+     * 患者id
+     */
+	@ApiModelProperty(value="患者id",required=true)
+	@NotNull(message="患者id必传")
+    private Long patientId;
+	
+	/**
+     * 就诊序列号
+     */
+	@ApiModelProperty(value="就诊序列号")
+    private String inquiryCode;
+    
+    /**
+     * 病历分类(1:门诊,2:住院)
+     */
+	@ApiModelProperty(value="病历分类(1:门诊,2:住院)")
+    private Integer type;
+    
+    /**
+     * 内容输入类型:0:结构化 1:文本模式
+     */
+	@ApiModelProperty(value="内容输入类型:0:结构化 1:文本模式")
+    private Integer sign;
+    
+	/**
+	 * 开始时间
+	 */
+	@ApiModelProperty(value="开始时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date startDate;
+	
+	/**
+	 * 结束时间
+	 */
+	@ApiModelProperty(value="结束时间,格式为:2018-11-28 17:25:30")
+	@DateTimeFormat(pattern="yyyy-MM-dd hh:mm:ss")
+	private Date endDate;
+	
+	/**
+	 * 排序类型:1、时间降序;2、时间升序; 
+	 */
+	@ApiModelProperty(value="排序类型:1、时间降序;2、时间升序;")
+	private Integer orderType=1;
+	   
+}

+ 27 - 0
tran-service/src/main/java/com/diagbot/web/DataServiceController.java

@@ -0,0 +1,27 @@
+package com.diagbot.web;
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/3/19 10:30
+ */
+@RestController
+@RequestMapping("/dataService")
+@Api(value = "数据服务对外接口相关API", tags = { "数据服务对外接口相关API" })
+public class DataServiceController {
+
+    @ApiOperation(value = "是否对接:[by:zhaops]")
+    @PostMapping("/isDocking")
+    @SysLogger("isDocking")
+    public RespDTO<Boolean> isDocking() {
+        return RespDTO.onSuc(false);
+    }
+}

+ 9 - 1
tran-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -34,11 +34,19 @@ public class InquiryInfoController {
 	 
 	 @PostMapping("/saveInquiryToHis")
 	 @SysLogger("saveInquiryToHis")
-
 	 public RespDTO<Boolean> saveInquiryToHis(@Valid @RequestBody SaveInquiryToHisVO saveInquiryToHisVO) {
 		 
 		 
 		
+	     return RespDTO.onSuc(true);
+	 }
+	 
+	 @PostMapping("/hisInquirysForDj")
+	 @SysLogger("hisInquirysForDj")
+	 public RespDTO<Object> hisInquirysForDj() {
+		 
+		 
+		
 	     return RespDTO.onSuc(true);
 	 }