ソースを参照

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
wangfeng 4 年 前
コミット
5cbe6580ce
38 ファイル変更995 行追加144 行削除
  1. 41 1
      doc/001.00000000初始化脚本/cdss_init.sql
  2. 7 7
      src/main/java/com/diagbot/aop/TokenAuthAspect.java
  3. 2 2
      src/main/java/com/diagbot/client/CdssCoreClient.java
  4. 2 2
      src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java
  5. 12 3
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  6. 12 4
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  7. 0 9
      src/main/java/com/diagbot/dto/HospitalInfoDTO.java
  8. 2 3
      src/main/java/com/diagbot/dto/PushBaseCoreDTO.java
  9. 6 6
      src/main/java/com/diagbot/dto/PushCoreDTO.java
  10. 33 0
      src/main/java/com/diagbot/dto/TemplateInfoDTO.java
  11. 31 0
      src/main/java/com/diagbot/dto/TemplateInfoPageDTO.java
  12. 122 0
      src/main/java/com/diagbot/entity/TemplateInfo.java
  13. 89 4
      src/main/java/com/diagbot/facade/AssembleFacade.java
  14. 44 2
      src/main/java/com/diagbot/facade/HospitalInfoFacade.java
  15. 8 77
      src/main/java/com/diagbot/facade/PushFacade.java
  16. 166 0
      src/main/java/com/diagbot/facade/TemplateInfoFacade.java
  17. 1 1
      src/main/java/com/diagbot/facade/TokenPermissionFacade.java
  18. 22 0
      src/main/java/com/diagbot/mapper/TemplateInfoMapper.java
  19. 22 0
      src/main/java/com/diagbot/service/TemplateInfoService.java
  20. 29 0
      src/main/java/com/diagbot/service/impl/TemplateInfoServiceImpl.java
  21. 5 5
      src/main/java/com/diagbot/vo/HospitalInfoVO.java
  22. 20 0
      src/main/java/com/diagbot/vo/HospitalSaveVO.java
  23. 4 0
      src/main/java/com/diagbot/vo/PushJoinVO.java
  24. 4 0
      src/main/java/com/diagbot/vo/SearchData.java
  25. 19 0
      src/main/java/com/diagbot/vo/TemplateIdVO.java
  26. 22 0
      src/main/java/com/diagbot/vo/TemplateInfoPageVO.java
  27. 24 0
      src/main/java/com/diagbot/vo/TemplateInfoRevampVO.java
  28. 19 0
      src/main/java/com/diagbot/vo/TemplateInfosIdVO.java
  29. 44 0
      src/main/java/com/diagbot/vo/TemplateInfosVO.java
  30. 28 9
      src/main/java/com/diagbot/web/HospitalInfoController.java
  31. 7 4
      src/main/java/com/diagbot/web/PushController.java
  32. 98 0
      src/main/java/com/diagbot/web/TemplateInfoController.java
  33. 1 1
      src/main/java/com/diagbot/web/TokenPermissionController.java
  34. 4 0
      src/main/java/com/diagbot/web/VersionDetailController.java
  35. 1 1
      src/main/resources/application-dev.yml
  36. 1 1
      src/main/resources/application-local.yml
  37. 41 0
      src/main/resources/mapper/TemplateInfoMapper.xml
  38. 2 2
      src/test/java/com/diagbot/CodeGeneration.java

+ 41 - 1
doc/001.00000000初始化脚本/cdss_init.sql

@@ -276,4 +276,44 @@ CREATE TABLE `sys_disclaimer_info` (
   `disclaimer_code` VARCHAR(20) DEFAULT NULL COMMENT '免责申明编号',
   `remark` VARCHAR(255) DEFAULT NULL COMMENT '备注',
   PRIMARY KEY (`id`)
-) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='免责申明详情';
+) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='免责申明详情';
+
+DROP TABLE IF EXISTS `demo_template_info`;
+CREATE TABLE `demo_template_info` (
+  `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则表示纪录未修改',
+  `name` varchar(300) DEFAULT NULL COMMENT '名称',
+  `hospital_id` bigint(20) DEFAULT NULL COMMENT '医院id',
+  `sex` int(11) NOT NULL DEFAULT '0' COMMENT '性别(1:男 2:女)',
+  `age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄',
+  `pat_name` varchar(50) NOT NULL DEFAULT '' COMMENT '病人姓名',
+  `doctor_name` varchar(50) NOT NULL DEFAULT '' COMMENT '医生姓名',
+  `inquiry_code` varchar(50) NOT NULL DEFAULT '' COMMENT '门诊号',
+  `card_no` varchar(50) NOT NULL DEFAULT '' COMMENT '卡号',
+  `dept_name` varchar(50) NOT NULL DEFAULT '' COMMENT '科室名称',
+  `inquiry_date` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '就诊时间',
+  `preview` longtext COMMENT '预览文字',
+  `data_json` longtext COMMENT '内容JSON字符串(演示病历内容)',
+  `remark` varchar(128) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='演示病历表';
+
+DROP TABLE IF EXISTS `tran_dept_config`;
+CREATE TABLE `tran_dept_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_id` bigint(20) NOT NULL COMMENT '医院id',
+  `his_name` varchar(255) NOT NULL COMMENT '医院项目名称',
+  `his_code` varchar(255) DEFAULT NULL COMMENT '医院项目编码',
+  `unique_name` varchar(255) NOT NULL COMMENT '标准名称',
+  `unique_code` varchar(255) DEFAULT NULL COMMENT '标准编码',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='科室映射表';

+ 7 - 7
src/main/java/com/diagbot/aop/TokenAuthAspect.java

@@ -107,10 +107,10 @@ public class TokenAuthAspect {
         HospitalCheckVO hospitalCheckVO = new HospitalCheckVO();
         hospitalCheckVO.setHospitalId(hospitalId);
         if (!hospitalInfoFacade.checkHospital(hospitalCheckVO)) {
-            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院不存在!");
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该医院不存在或已停用!");
         }
-        //todo 权限拦截
-        //todo 远程获取权限验证权限
+        //权限拦截
+        //远程获取权限验证权限
         //验证权限
         String uri = request.getRequestURI();
         log.info(uri);
@@ -124,14 +124,14 @@ public class TokenAuthAspect {
             noParamMap = permissionDTO.getPermissionMap().get("noParam");
         }
 
-        //todo 验证是否在无参数的Map
+        //验证是否在无参数的Map
         Boolean noParam = false;
         if (noParamMap != null) {
             if (noParamMap.containsKey(uri)) {
                 noParam = true;
             }
         }
-        //todo 验证是否在有参数的Map
+        //验证是否在有参数的Map
         Boolean hasParam = false;
         List<Map<String, Set<String>>> perParamList = Lists.newLinkedList();
         if (hasParamMap != null) {
@@ -144,14 +144,14 @@ public class TokenAuthAspect {
         if (!noParam && !hasParam) {
             throw new CommonException(CommonErrorCode.NO_PERMISSION);
         }
-        //todo 验证参数
+        //验证参数
         if (args == null) {
             throw new CommonException(CommonErrorCode.NO_PERMISSION);
         }
 
         Map<String, Object> paramMap = new HashMap<>();
         paramMap = getFieldsName(joinPoint);
-        //todo 利用paramMap获取结果
+        //利用paramMap获取结果
         try {
             if (!noParam && hasParam && ListUtil.isNotEmpty(perParamList)) {
 

+ 2 - 2
src/main/java/com/diagbot/client/CdssCoreClient.java

@@ -2,7 +2,7 @@ package com.diagbot.client;
 
 import com.diagbot.client.hystrix.CdssCoreHystrix;
 import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.PushCoreDTO;
+import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.PushVO;
@@ -24,7 +24,7 @@ public interface CdssCoreClient {
     RespDTO<IndicationDTO> indication(@Valid @RequestBody IndicationPushVO indicationPushVO);
 
     @PostMapping("/core/push")
-    RespDTO<PushCoreDTO> push(@RequestBody @Valid PushVO pushVo);
+    RespDTO<PushDTO> push(@RequestBody @Valid PushVO pushVo);
 }
 
 

+ 2 - 2
src/main/java/com/diagbot/client/hystrix/CdssCoreHystrix.java

@@ -2,7 +2,7 @@ package com.diagbot.client.hystrix;
 
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.PushCoreDTO;
+import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.PushVO;
@@ -28,7 +28,7 @@ public class CdssCoreHystrix implements CdssCoreClient {
     }
 
     @Override
-    public RespDTO<PushCoreDTO> push(@RequestBody @Valid PushVO pushVo) {
+    public RespDTO<PushDTO> push(@RequestBody @Valid PushVO pushVo) {
         log.error("【hystrix】调用{}异常", "push");
         return null;
     }

+ 12 - 3
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -26,7 +26,7 @@ import java.io.IOException;
  */
 @Configuration
 @EnableResourceServer
-@ComponentScan({ "com.diagbot.config" })
+@ComponentScan({"com.diagbot.config" })
 public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
     Logger log = LoggerFactory.getLogger(ResourceServerConfigurer.class);
 
@@ -82,6 +82,9 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/tran/operationConfig/getPage").permitAll()
                 .antMatchers("/tran/operationConfig/importExcel").permitAll()
                 .antMatchers("/tran/operationConfig/exportExcel").permitAll()
+                .antMatchers("/tran/hospitalInfo/saveRecord").permitAll()
+                .antMatchers("/tran/hospitalInfo/getHospitalInfo").permitAll()
+                .antMatchers("/tran/hospitalInfo/getHospitalInfoById").permitAll()
                 .antMatchers("/sys/versionInfo/getVersionInfoAlls").permitAll()
                 .antMatchers("/sys/disclaimerInfo/getDisclaimerInfo").permitAll()
                 .antMatchers("/sys/mr/createMr").permitAll()
@@ -90,8 +93,14 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/sys/mrqc/analyze_run").permitAll()
                 .antMatchers("/sys/tokenPermission/delPermission").permitAll()
                 .antMatchers("/sys/tokenPermission/getPermission").permitAll()
-                .antMatchers("/push/push").permitAll()
-                .antMatchers("/push/indicationPush").permitAll()
+                .antMatchers("/sys/push/push").permitAll()
+                .antMatchers("/sys/push/indicationPush").permitAll()
+                .antMatchers("/demo/templateInfo/updateByIdUsNames").permitAll()
+                .antMatchers("/demo/templateInfo/saveTemplateInfo").permitAll()
+                .antMatchers("/demo/templateInfo/cancelTemplateInfos").permitAll()
+                .antMatchers("/demo/templateInfo/getTemplatePageAlls").permitAll()
+                .antMatchers("/demo/templateInfo/getTemplatebyId").permitAll()
+                .antMatchers("/sys/tokenPermission/getPermission").permitAll()
                 .antMatchers("/sys/plan/getPlanInfoPages").permitAll()
                 .antMatchers("/sys/plan/savePlanInfoDatas").permitAll()
                 .antMatchers("/sys/plan/getSysPlanInfoDatas").permitAll()

+ 12 - 4
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -35,7 +35,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
         if (matchPermitAllUrl(request)) {
             return;
         }
-        if ("anonymousUser" .equals(authentication.getPrincipal())) {
+        if ("anonymousUser".equals(authentication.getPrincipal())) {
             throw new AccessDeniedException("no right");
         } else {
             String tokenStr = HttpUtils.getHeaders(request).get("Authorization");
@@ -51,7 +51,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 url = authority[0];
                 method = authority[1];
                 if (matchers(url, request)) {
-                    if (method.equals(request.getMethod()) || "ALL" .equals(method)) {
+                    if (method.equals(request.getMethod()) || "ALL".equals(method)) {
                         return;
                     }
                 }
@@ -125,6 +125,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/tran/operationConfig/getPage", request)
                 || matchers("/tran/operationConfig/importExcel", request)
                 || matchers("/tran/operationConfig/exportExcel", request)
+                || matchers("/tran/hospitalInfo/saveRecord", request)
+                || matchers("/tran/hospitalInfo/getHospitalInfo", request)
+                || matchers("/tran/hospitalInfo/getHospitalInfoById", request)
                 || matchers("/sys/versionInfo/getVersionInfoAlls", request)
                 || matchers("/sys/disclaimerInfo/getDisclaimerInfo", request)
                 || matchers("/sys/mr/createMr", request)
@@ -133,8 +136,13 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/sys/mrqc/analyze_run", request)
                 || matchers("/sys/tokenPermission/delPermission", request)
                 || matchers("/sys/tokenPermission/getPermission", request)
-                || matchers("/push/push", request)
-                || matchers("/push/indicationPush", request)
+                || matchers("/sys/push/push", request)
+                || matchers("/sys/push/indicationPush", request)
+                || matchers("/demo/templateInfo/updateByIdUsNames", request)
+                || matchers("/demo/templateInfo/saveTemplateInfo", request)
+                || matchers("/demo/templateInfo/cancelTemplateInfos", request)
+                || matchers("/demo/templateInfo/getTemplatePageAlls", request)
+                || matchers("/demo/templateInfo/getTemplatebyId", request)
                 || matchers("/sys/plan/getPlanInfoPages", request)
                 || matchers("/sys/plan/savePlanInfoDatas", request)
                 || matchers("/sys/plan/getSysPlanInfoDatas", request)

+ 0 - 9
src/main/java/com/diagbot/dto/HospitalInfoDTO.java

@@ -41,15 +41,6 @@ public class HospitalInfoDTO {
      */
     private Integer connect;
 
-    /**
-     * 化验导入方式
-     */
-    private Integer importWayLis;
-
-    /**
-     * 辅检导入方式
-     */
-    private Integer importWayPacs;
     /**
      * 备注
      */

+ 2 - 3
src/main/java/com/diagbot/dto/PushBaseCoreDTO.java

@@ -12,10 +12,9 @@ import java.util.List;
  */
 @Getter
 @Setter
-public class PushBaseCoreDTO {
+public class PushBaseDTO {
     //条目名称
     private String name;
-
-    //his条目名称
+    //医院端名称
     private List<String> hisNameList;
 }

+ 6 - 6
src/main/java/com/diagbot/dto/PushCoreDTO.java

@@ -13,15 +13,15 @@ import java.util.Map;
  */
 @Getter
 @Setter
-public class PushCoreDTO {
+public class PushDTO {
     //症状
-    private List<PushBaseCoreDTO> symptom;
+    private List<PushBaseDTO> symptom;
     //体格检查
-    private List<PushBaseCoreDTO> vital;
+    private List<PushBaseDTO> vital;
     //检验
-    private List<PushBaseCoreDTO> lis;
+    private List<PushBaseDTO> lis;
     //检查
-    private List<PushBaseCoreDTO> pacs;
+    private List<PushBaseDTO> pacs;
     //诊断
-    private Map<String, List<PushBaseCoreDTO>> dis;
+    private Map<String, List<PushBaseDTO>> dis;
 }

+ 33 - 0
src/main/java/com/diagbot/dto/TemplateInfoDTO.java

@@ -0,0 +1,33 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description: 医生病历模板出参
+ * @date 2018年11月16日 上午10:40:27
+ */
+@Getter
+@Setter
+public class TemplateInfoDTO {
+    private Long id;//模板id
+    private Date gmtCreate;//创建时间
+    private String name;//模板名字
+    private Integer sex;//性别
+    private Integer age;//年龄
+    private String patName;//病人姓名
+    private String doctorName;//医生姓名
+    private String inquiryCode;//门诊号
+    private String cardNo;//卡号
+    private String deptName;//科室名称
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inquiryDate;//就诊时间
+    private String preview;//预览文字
+    private String dataJson;//模板数据
+    private String remark;//备注
+
+}

+ 31 - 0
src/main/java/com/diagbot/dto/TemplateInfoPageDTO.java

@@ -0,0 +1,31 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年7月24日 上午11:07:57
+ */
+@Getter
+@Setter
+public class TemplateInfoPageDTO {
+    private Long id;//模板id
+    private Date gmtCreate;//创建时间
+    private String name;//模板名字
+    private Integer sex;//性别
+    private Integer age;//年龄
+    private String patName;//病人姓名
+    private String doctorName;//医生姓名
+    private String inquiryCode;//门诊号
+    private String cardNo;//卡号
+    private String deptName;//科室名称
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inquiryDate;//就诊时间
+    private String preview;//预览文字
+    private String remark;//备注
+}

+ 122 - 0
src/main/java/com/diagbot/entity/TemplateInfo.java

@@ -0,0 +1,122 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 演示病历表
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2018-11-19
+ */
+@TableName("demo_template_info")
+@Getter
+@Setter
+public class TemplateInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 医院id
+     */
+    private Long hospitalId;
+
+    /**
+     * 性别(1:男 2:女)
+     */
+    private Integer sex;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 病人姓名
+     */
+    private String patName;
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 门诊号
+     */
+    private String inquiryCode;
+
+    /**
+     * 卡号
+     */
+    private String cardNo;
+
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    /**
+     * 就诊时间
+     */
+    private Date inquiryDate;
+
+    /**
+     * 预览文字
+     */
+    private String preview;
+
+    /**
+     * 内容JSON字符串(模板内容)
+     */
+    private String dataJson;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 89 - 4
src/main/java/com/diagbot/facade/AssembleFacade.java

@@ -3,6 +3,10 @@ package com.diagbot.facade;
 import com.diagbot.biz.push.entity.Item;
 import com.diagbot.biz.push.entity.Lis;
 import com.diagbot.biz.push.entity.Pacs;
+import com.diagbot.dto.PushBaseDTO;
+import com.diagbot.dto.PushDTO;
+import com.diagbot.entity.HospitalInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -11,6 +15,7 @@ import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -33,9 +38,16 @@ public class AssembleFacade {
     private DrugConfigFacade drugConfigFacade;
     @Autowired
     private OperationConfigFacade operationConfigFacade;
+    @Autowired
+    private HospitalInfoFacade hospitalInfoFacade;
 
+    /**
+     * 入参映射
+     *
+     * @param searchData
+     * @return
+     */
     public SearchData assembleData(SearchData searchData) {
-
         //化验公表转换
         List<String> lisHisNameList = Lists.newArrayList();
         //lis
@@ -203,8 +215,6 @@ public class AssembleFacade {
                 searchData.setOperationOrder(convertItem);
             }
         }
-
-
         return searchData;
     }
 
@@ -321,4 +331,79 @@ public class AssembleFacade {
         });
         return convertItem;
     }
-}
+
+    /**
+     * 出参映射
+     *
+     * @param data
+     * @param hospitalId
+     * @return
+     */
+    public PushDTO assemblePushDTO(PushDTO data, Long hospitalId) {
+        HospitalInfo hospitalInfo = hospitalInfoFacade.getById(hospitalId);
+        Integer isConnect = 0;
+        if (hospitalInfo != null && hospitalInfo.getIsDeleted().equals(IsDeleteEnum.N.getKey())) {
+            isConnect = 1;
+        }
+        if (isConnect.equals(1)) {
+            if (ListUtil.isNotEmpty(data.getLis())) {
+                List<PushBaseDTO> retLis = data.getLis();
+                List<String> uniqueNameList = retLis.stream()
+                        .map(i -> i.getName())
+                        .collect(Collectors.toList());
+                Map<String, Map<String, Long>> uniqueNameMap
+                        = lisConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+                if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                    retLis.forEach(item -> {
+                        if (uniqueNameMap.get(item.getName()) != null) {
+                            item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                        }
+                    });
+                    data.setLis(retLis);
+                }
+            }
+            if (ListUtil.isNotEmpty(data.getPacs())) {
+                List<PushBaseDTO> retPacs = data.getPacs();
+                List<String> uniqueNameList = retPacs.stream()
+                        .map(i -> i.getName())
+                        .collect(Collectors.toList());
+                Map<String, Map<String, Long>> uniqueNameMap
+                        = pacsConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+                if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                    retPacs.forEach(item -> {
+                        if (uniqueNameMap.get(item.getName()) != null) {
+                            item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                        }
+                    });
+                    data.setPacs(retPacs);
+                }
+            }
+            if (data.getDis() != null && data.getDis().size() > 0) {
+                Map<String, List<PushBaseDTO>> retMap = data.getDis();
+                List<String> uniqueNameList = Lists.newLinkedList();
+                for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
+                    if (ListUtil.isNotEmpty(entry.getValue())) {
+                        uniqueNameList.addAll(entry.getValue().stream()
+                                .map(i -> i.getName())
+                                .collect(Collectors.toList()));
+                    }
+                }
+                if (ListUtil.isNotEmpty(uniqueNameList)) {
+                    Map<String, Map<String, Long>> uniqueNameMap
+                            = diseaseConfigFacade.getUniqueNameConfigMap(hospitalId, null, uniqueNameList);
+                    for (Map.Entry<String, List<PushBaseDTO>> entry : retMap.entrySet()) {
+                        if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
+                            entry.getValue().forEach(item -> {
+                                if (uniqueNameMap.get(item.getName()) != null) {
+                                    item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
+                                }
+                            });
+                        }
+                    }
+                    data.setDis(retMap);
+                }
+            }
+        }
+        return data;
+    }
+}

+ 44 - 2
src/main/java/com/diagbot/facade/HospitalInfoFacade.java

@@ -1,15 +1,24 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.entity.HospitalInfo;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.HospitalInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.HospitalCheckVO;
 import com.diagbot.vo.HospitalInfoVO;
+import com.diagbot.vo.HospitalSaveVO;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
+
 /**
  * @author wangfeng
  * @Description:
@@ -22,10 +31,10 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
      * @param hospitalInfoVO
      * @return
      */
-    public HospitalInfoDTO getHospitalInfo(HospitalInfoVO hospitalInfoVO) {
+    public HospitalInfoDTO getHospitalInfoById(HospitalInfoVO hospitalInfoVO) {
         QueryWrapper<HospitalInfo> queryWrapper = new QueryWrapper<HospitalInfo>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("code", hospitalInfoVO.getCode());
+                .eq("id", hospitalInfoVO.getId());
         HospitalInfo datas = this.getOne(queryWrapper, false);
         HospitalInfoDTO data = new HospitalInfoDTO();
         BeanUtil.copyProperties(datas, data);
@@ -35,10 +44,43 @@ public class HospitalInfoFacade extends HospitalInfoServiceImpl {
     public Boolean checkHospital(HospitalCheckVO hospitalCheckVO) {
         QueryWrapper<HospitalInfo> queryWrapper = new QueryWrapper<HospitalInfo>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("status", StatusEnum.Enable.getKey())
                 .eq("id", hospitalCheckVO.getHospitalId());
         if (this.count(queryWrapper) > 0) {
             return true;
         }
         return false;
     }
+
+    /**
+     * 保存医院信息--医院端只能修改对接状态
+     *
+     * @param hospitalSaveVO
+     * @return
+     */
+    public Boolean saveRecord(HospitalSaveVO hospitalSaveVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        if (!hospitalSaveVO.getId().equals(Long.valueOf(hospitalId))) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "不允许修改别家医院信息");
+        }
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        UpdateWrapper<HospitalInfo> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("connect", hospitalSaveVO.getConnect())
+                .set("modifier", userId)
+                .set("gmt_modified", now)
+                .eq("id", hospitalSaveVO.getId());
+        return this.update(updateWrapper);
+    }
+
+    /**
+     * 获取医院信息
+     *
+     * @return
+     */
+    public HospitalInfo getHospitalInfo() {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        HospitalInfo hospitalInfo = this.getById(Long.valueOf(hospitalId));
+        return hospitalInfo;
+    }
 }

+ 8 - 77
src/main/java/com/diagbot/facade/PushFacade.java

@@ -2,24 +2,16 @@ package com.diagbot.facade;
 
 import com.diagbot.client.CdssCoreClient;
 import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.PushBaseCoreDTO;
-import com.diagbot.dto.PushCoreDTO;
+import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.util.BeanUtil;
-import com.diagbot.util.ListUtil;
 import com.diagbot.util.RespDTOUtil;
 import com.diagbot.vo.IndicationPushVO;
 import com.diagbot.vo.PushVO;
 import com.diagbot.vo.SearchData;
-import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
 /**
  * @Description:
  * @Author:zhaops
@@ -31,85 +23,23 @@ public class PushFacade {
     private AssembleFacade assembleFacade;
     @Autowired
     private CdssCoreClient cdssCoreClient;
-    @Autowired
-    private LisConfigFacade lisConfigFacade;
-    @Autowired
-    private PacsConfigFacade pacsConfigFacade;
-    @Autowired
-    private DiseaseConfigFacade diseaseConfigFacade;
-
 
     /**
      * 基础推理-症状、查体、化验、辅检、诊断
      *
      * @param pushVO
      */
-    public PushCoreDTO push(PushVO pushVO) {
+    public PushDTO push(PushVO pushVO) {
         SearchData searchData = new SearchData();
         BeanUtil.copyProperties(pushVO, searchData);
+        //TODO 入参映射
         searchData = assembleFacade.assembleData(searchData);
         BeanUtil.copyProperties(searchData, pushVO);
-        RespDTO<PushCoreDTO> resp = cdssCoreClient.push(pushVO);
+        RespDTO<PushDTO> resp = cdssCoreClient.push(pushVO);
         RespDTOUtil.respNGDealCover(resp, "远程调用推理接口失败");
-        PushCoreDTO data = resp.data;
-        //TODO 外部名称映射
-        if (ListUtil.isNotEmpty(data.getLis())) {
-            List<PushBaseCoreDTO> retLis = data.getLis();
-            List<String> uniqueNameList = retLis.stream()
-                    .map(i -> i.getName())
-                    .collect(Collectors.toList());
-            Map<String, Map<String, Long>> uniqueNameMap
-                    = lisConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
-            if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
-                retLis.forEach(item -> {
-                    if (uniqueNameMap.get(item.getName()) != null) {
-                        item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
-                    }
-                });
-                data.setLis(retLis);
-            }
-        }
-        if (ListUtil.isNotEmpty(data.getPacs())) {
-            List<PushBaseCoreDTO> retPacs = data.getPacs();
-            List<String> uniqueNameList = retPacs.stream()
-                    .map(i -> i.getName())
-                    .collect(Collectors.toList());
-            Map<String, Map<String, Long>> uniqueNameMap
-                    = pacsConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
-            if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
-                retPacs.forEach(item -> {
-                    if (uniqueNameMap.get(item.getName()) != null) {
-                        item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
-                    }
-                });
-                data.setPacs(retPacs);
-            }
-        }
-        if (data.getDis() != null && data.getDis().size() > 0) {
-            Map<String, List<PushBaseCoreDTO>> retMap = data.getDis();
-            List<String> uniqueNameList = Lists.newLinkedList();
-            for (Map.Entry<String, List<PushBaseCoreDTO>> entry : retMap.entrySet()) {
-                if (ListUtil.isNotEmpty(entry.getValue())) {
-                    uniqueNameList.addAll(entry.getValue().stream()
-                            .map(i -> i.getName())
-                            .collect(Collectors.toList()));
-                }
-            }
-            if (ListUtil.isNotEmpty(uniqueNameList)) {
-                Map<String, Map<String, Long>> uniqueNameMap
-                        = diseaseConfigFacade.getUniqueNameConfigMap(pushVO.getHospitalId(), null, uniqueNameList);
-                for (Map.Entry<String, List<PushBaseCoreDTO>> entry : retMap.entrySet()) {
-                    if (uniqueNameMap != null && uniqueNameMap.size() > 0) {
-                        entry.getValue().forEach(item -> {
-                            if (uniqueNameMap.get(item.getName()) != null) {
-                                item.setHisNameList(new ArrayList<>(uniqueNameMap.get(item.getName()).keySet()));
-                            }
-                        });
-                    }
-                }
-                data.setDis(retMap);
-            }
-        }
+        PushDTO data = resp.data;
+        //TODO 出参映射
+        data = assembleFacade.assemblePushDTO(data, pushVO.getHospitalId());
         return data;
     }
 
@@ -121,6 +51,7 @@ public class PushFacade {
     public IndicationDTO indicationPush(IndicationPushVO indicationPushVO) {
         SearchData searchData = new SearchData();
         BeanUtil.copyProperties(indicationPushVO, searchData);
+        //TODO 入参映射
         searchData = assembleFacade.assembleData(searchData);
         BeanUtil.copyProperties(searchData, indicationPushVO);
         RespDTO<IndicationDTO> resp = cdssCoreClient.indication(indicationPushVO);

+ 166 - 0
src/main/java/com/diagbot/facade/TemplateInfoFacade.java

@@ -0,0 +1,166 @@
+package com.diagbot.facade;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.TemplateInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.GsonUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.vo.TemplateIdVO;
+import com.diagbot.vo.TemplateInfoPageVO;
+import com.diagbot.vo.TemplateInfoRevampVO;
+import com.diagbot.vo.TemplateInfosIdVO;
+import com.diagbot.vo.TemplateInfosVO;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author wangfeng
+ * @Description: 演示病历
+ * @date 2018年11月16日 上午11:24:36
+ */
+@Component
+public class TemplateInfoFacade extends TemplateInfoServiceImpl {
+    /**
+     * 根据病历id 修改病历名
+     *
+     * @param templateInfoRevampVO
+     * @return
+     */
+    public boolean updateByIdUsName(TemplateInfoRevampVO templateInfoRevampVO) {
+        //1.先判断数据是否存在有效
+        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
+        templateInfoFand
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", templateInfoRevampVO.getId());
+        int sum = count(templateInfoFand);
+        if (sum == 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历不存在");
+        }
+        //2.再判断该医院下病历名是否重复存在
+        QueryWrapper<TemplateInfo> templates = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_id", templateInfoRevampVO.getHospitalId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("name", templateInfoRevampVO.getModeName());
+        templates.allEq(mapAll);
+        TemplateInfo datas = getOne(templates, false);
+        if (datas != null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历名已存在");
+        }
+        //3.修改表数据的病历名字
+        TemplateInfo templateInfo = new TemplateInfo();
+        templateInfo.setId(templateInfoRevampVO.getId());//病历id
+        templateInfo.setName(templateInfoRevampVO.getModeName());//病历名称
+        templateInfo.setGmtModified(DateUtil.now());//修改时间
+        boolean res = updateById(templateInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.UPDATE_INFO_FAIL);
+        }
+
+        return res;
+    }
+
+    /**
+     * 保存病历
+     *
+     * @param templateInfosVO
+     * @return
+     */
+    public boolean saveTemplateInfo(TemplateInfosVO templateInfosVO) {
+        //1.判断该医院下是否存在病历名相同的数据
+        TemplateInfo templateInfo = new TemplateInfo();
+        QueryWrapper<TemplateInfo> templateInfoFand = new QueryWrapper<>();
+        Map<String, Object> mapAll = new HashMap<>();
+        mapAll.put("hospital_id", templateInfosVO.getHospitalId());
+        mapAll.put("is_deleted", IsDeleteEnum.N.getKey());
+        mapAll.put("name", templateInfosVO.getModeName());
+
+        templateInfoFand.allEq(mapAll);
+        int sum = count(templateInfoFand);
+        if (sum != 0) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历名存在");
+        }
+        //2.获取传入的数据,保存到数据表中。
+        Date now = DateUtil.now();
+        BeanUtil.copyProperties(templateInfosVO, templateInfo);
+        templateInfo.setName(templateInfosVO.getModeName());
+        templateInfo.setGmtCreate(now);//创建时间
+        templateInfo.setGmtModified(now);//修改时间
+        boolean res = save(templateInfo);
+        if (!res) {
+            throw new CommonException(CommonErrorCode.INSERT_DATA_FAILED);
+        }
+        return res;
+    }
+
+    /**
+     * 根据病历id批量删除病历
+     *
+     * @param templateInfosIdVO
+     * @return
+     */
+    public boolean cancelTemplateInfo(TemplateInfosIdVO templateInfosIdVO) {
+        //1.获取传入的ids数据
+        String ids = templateInfosIdVO.getIds();
+        //2.截取到最后一个
+        String substring = ids.substring(0, ids.length());
+        //System.out.println(substring);
+        //3.以逗号分割
+        String[] splitIds = substring.split(",");
+        //验证转化好的参数
+        if (ListUtil.isEmpty(ListUtil.arrayToList(splitIds))) {
+            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "请输入病历id");
+        }
+        //把分割的id数据传入对象中,在表中批量删除
+        UpdateWrapper<TemplateInfo> templateInfoNew = new UpdateWrapper<>();
+        templateInfoNew
+                .in("id", ListUtil.arrayToList(splitIds))
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("gmt_modified", DateUtil.now());
+        boolean res = update(new TemplateInfo(), templateInfoNew);
+        return res;
+    }
+
+    /**
+     * @param templateInfoPageVO
+     * @return
+     */
+    public IPage<TemplateInfoPageDTO> getTemplatePageAlls(TemplateInfoPageVO templateInfoPageVO) {
+        IPage<TemplateInfoPageDTO> TemplateInfoData = getTemplatePages(templateInfoPageVO);
+        return TemplateInfoData;
+    }
+
+    /**
+     * @param templateIdVO
+     * @return
+     */
+    public TemplateInfoDTO getTemplatebyId(TemplateIdVO templateIdVO) {
+        //根据病历id在数据表中查出相应的病历数据
+        QueryWrapper<TemplateInfo> templateInfoQuery = new QueryWrapper<>();
+        templateInfoQuery
+                .eq("id", templateIdVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+        TemplateInfoDTO data = new TemplateInfoDTO();
+        TemplateInfo datas = getOne(templateInfoQuery, false);
+        if (datas == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该病历不存在");
+        }
+        //过滤
+        BeanUtil.copyProperties(datas, data);
+        return data;
+    }
+
+}

+ 1 - 1
src/main/java/com/diagbot/facade/TokenPermissionFacade.java

@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
 public class TokenPermissionFacade extends TokenPermissionServiceImpl {
     private static final String PERMISSIONCACHE = "permissionCache";
 
-    @Cacheable(value = PERMISSIONCACHE, key = "'permission:hc_' + #tokenPermissionVO.tokenId + '_st_' + #tokenPermissionVO.type")
+    @Cacheable(value = PERMISSIONCACHE, key = "'permission:tokenId_' + #tokenPermissionVO.tokenId + '_type_' + #tokenPermissionVO.type")
     public PermissionDTO getPermission(TokenPermissionVO tokenPermissionVO) {
         List<TokenPermissionDTO> hosPermissionDTOS = getTokenPermission(tokenPermissionVO);
 

+ 22 - 0
src/main/java/com/diagbot/mapper/TemplateInfoMapper.java

@@ -0,0 +1,22 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.vo.TemplateInfoPageVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 演示病历表 Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2018-11-16
+ */
+public interface TemplateInfoMapper extends BaseMapper<TemplateInfo> {
+    IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO);
+}

+ 22 - 0
src/main/java/com/diagbot/service/TemplateInfoService.java

@@ -0,0 +1,22 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.vo.TemplateInfoPageVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 演示病历表 服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2018-11-16
+ */
+public interface TemplateInfoService extends IService<TemplateInfo> {
+    IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO);
+}

+ 29 - 0
src/main/java/com/diagbot/service/impl/TemplateInfoServiceImpl.java

@@ -0,0 +1,29 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
+import com.diagbot.entity.TemplateInfo;
+import com.diagbot.mapper.TemplateInfoMapper;
+import com.diagbot.service.TemplateInfoService;
+import com.diagbot.vo.TemplateInfoPageVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 演示病历表 服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2018-11-16
+ */
+@Service
+public class TemplateInfoServiceImpl extends ServiceImpl<TemplateInfoMapper, TemplateInfo> implements TemplateInfoService {
+    @Override
+    public IPage<TemplateInfoPageDTO> getTemplatePages(TemplateInfoPageVO templateInfoPageVO) {
+        return baseMapper.getTemplatePages(templateInfoPageVO);
+    }
+}

+ 5 - 5
src/main/java/com/diagbot/vo/HospitalInfoVO.java

@@ -19,9 +19,9 @@ public class HospitalInfoVO {
      */
     private Long id;
 
-    /**
-     * 医院编码
-     */
-    @NotNull(message = "请输入医院编码")
-    private String code;
+//    /**
+//     * 医院编码
+//     */
+//    @NotNull(message = "请输入医院编码")
+//    private String code;
 }

+ 20 - 0
src/main/java/com/diagbot/vo/HospitalSaveVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/8/11 10:53
+ */
+@Getter
+@Setter
+public class HospitalSaveVO {
+    @NotNull(message = "请输入医院id")
+    private Long id;
+    @NotNull(message = "请输入是否对接")
+    private Integer connect;
+}

+ 4 - 0
src/main/java/com/diagbot/vo/PushJoinVO.java

@@ -111,6 +111,10 @@ public class PushJoinVO {
      * 不能分类文本
      */
     private String unknown;
+    /**
+     * 科室
+     */
+    private List<Item> dept;
     /**
      * 化验项目和结果
      */

+ 4 - 0
src/main/java/com/diagbot/vo/SearchData.java

@@ -101,6 +101,10 @@ public class SearchData extends HospitalBaseVO {
      * 药品文本数据
      */
     private String drugString = "";
+    /**
+     * 科室
+     */
+    private List<Item> dept = new ArrayList<>();
     /**
      * 化验项目和结果
      */

+ 19 - 0
src/main/java/com/diagbot/vo/TemplateIdVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年7月24日 下午1:20:52
+ */
+@Getter
+@Setter
+public class TemplateIdVO {
+    @NotNull(message = "请输入模板id")
+    private Long id;
+}

+ 22 - 0
src/main/java/com/diagbot/vo/TemplateInfoPageVO.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description: TODO
+ * @date 2019年7月24日 上午11:06:33
+ */
+@Getter
+@Setter
+public class TemplateInfoPageVO extends Page {
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId = -1L;//医院ID
+    private String name;//模板名字
+}

+ 24 - 0
src/main/java/com/diagbot/vo/TemplateInfoRevampVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description: 修改模板名入参
+ * @date 2018年11月16日 下午2:41:01
+ */
+@Getter
+@Setter
+public class TemplateInfoRevampVO {
+    @NotNull(message = "请输入模板id")
+    private Long id;//模板id
+    @NotBlank(message = "请输入模板名")
+    private String modeName;//模板名
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId = -1L;//医院ID
+}

+ 19 - 0
src/main/java/com/diagbot/vo/TemplateInfosIdVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/***
+ *
+ * @author wangfeng
+ * @Description: 批量删除
+ * @date 2018年11月16日 下午4:57:25
+ */
+@Getter
+@Setter
+public class TemplateInfosIdVO {
+    @NotBlank(message = "请输入模板id")
+    private String ids;
+}

+ 44 - 0
src/main/java/com/diagbot/vo/TemplateInfosVO.java

@@ -0,0 +1,44 @@
+package com.diagbot.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description: 病历保存
+ * @date 2018年11月16日 下午3:35:05
+ */
+@Getter
+@Setter
+public class TemplateInfosVO {
+    @NotBlank(message = "请输入模板名字")
+    private String modeName;//模板名字
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId = -1L;//医院ID
+    @NotNull(message = "请输入性别")
+    private Integer sex;//性别
+    @NotNull(message = "请输入年龄")
+    private Integer age;//年龄
+    @NotBlank(message = "请输入病人姓名")
+    private String patName;//病人姓名
+    @NotBlank(message = "请输入医生姓名")
+    private String doctorName;//医生姓名
+    @NotBlank(message = "请输入门诊号")
+    private String inquiryCode;//门诊号
+    @NotBlank(message = "请输入卡号")
+    private String cardNo;//卡号
+    @NotBlank(message = "请输入科室名称")
+    private String deptName;//科室名称
+    @NotNull(message = "请输入就诊时间")
+    private Date inquiryDate;//就诊时间
+    @NotNull(message = "请输入预览文本")
+    private String preview;//预览文本
+    @NotBlank(message = "请输入模板数据")
+    private String dataJson;//模板数据
+}

+ 28 - 9
src/main/java/com/diagbot/web/HospitalInfoController.java

@@ -4,12 +4,15 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.HospitalInfoDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.HospitalInfo;
 import com.diagbot.facade.HospitalInfoFacade;
 import com.diagbot.vo.HospitalCheckVO;
 import com.diagbot.vo.HospitalInfoVO;
+import com.diagbot.vo.HospitalSaveVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,22 +30,20 @@ import javax.validation.Valid;
  * @since 2020-07-29
  */
 @RestController
-@RequestMapping("/sys/hospitalInfo")
+@RequestMapping("/tran/hospitalInfo")
 @Api(value = "医院信息API", tags = { "医院信息API" })
 @SuppressWarnings("unchecked")
-@ApiIgnore
 public class HospitalInfoController {
 
     @Autowired
     private HospitalInfoFacade hospitalInfoFacade;
 
-    @ApiOperation(value = "医院信息——根据医院编码获取医院信息[by:wangfeng]",
-            notes = "id: 医院id<br>" +
-                    "code:医院编码<br>")
-    @PostMapping("/getHospitalInfo")
-    @SysLogger("getHospitalInfo")
-    public RespDTO<HospitalInfoDTO> getHospitalInfo(@RequestBody @Valid HospitalInfoVO hospitalInfoVO) {
-        HospitalInfoDTO data = hospitalInfoFacade.getHospitalInfo(hospitalInfoVO);
+    @ApiOperation(value = "医院信息——根据医院Id获取医院信息[by:wangfeng]",
+            notes = "id: 医院id<br>")
+    @PostMapping("/getHospitalInfoById")
+    @SysLogger("getHospitalInfoById")
+    public RespDTO<HospitalInfoDTO> getHospitalInfoById(@RequestBody @Valid HospitalInfoVO hospitalInfoVO) {
+        HospitalInfoDTO data = hospitalInfoFacade.getHospitalInfoById(hospitalInfoVO);
         return RespDTO.onSuc(data);
     }
 
@@ -51,7 +52,25 @@ public class HospitalInfoController {
             notes = "hospitalCode:医院编码<br>")
     @PostMapping("/checkHospital")
     @SysLogger("checkHospital")
+    @ApiIgnore
     public RespDTO<Boolean> checkHospital(@RequestBody @Valid HospitalCheckVO hospitalCheckVO) {
         return RespDTO.onSuc(hospitalInfoFacade.checkHospital(hospitalCheckVO));
     }
+
+    @ApiOperation(value = "医院信息——修改医院信息[by:zhaops]",
+            notes = "id:医院id<br>" +
+                    "connect:是否对接(0-不对接,1-对接)<br>")
+    @PostMapping("/saveRecord")
+    @SysLogger("saveRecord")
+    public RespDTO<Boolean> saveRecord(@RequestBody @Valid HospitalSaveVO hospitalSaveVO) {
+        return RespDTO.onSuc(hospitalInfoFacade.saveRecord(hospitalSaveVO));
+    }
+
+    @ApiOperation(value = "医院信息——获取医院信息[by:zhaops]",
+            notes = "")
+    @PostMapping("/getHospitalInfo")
+    @SysLogger("getHospitalInfo")
+    public RespDTO<HospitalInfo> getHospitalInfo() {
+        return RespDTO.onSuc(hospitalInfoFacade.getHospitalInfo());
+    }
 }

+ 7 - 4
src/main/java/com/diagbot/web/PushController.java

@@ -1,8 +1,9 @@
 package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.annotation.TokenAuth;
 import com.diagbot.dto.IndicationDTO;
-import com.diagbot.dto.PushCoreDTO;
+import com.diagbot.dto.PushDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.PushFacade;
 import com.diagbot.vo.IndicationPushVO;
@@ -23,7 +24,7 @@ import javax.validation.Valid;
  * @time: 2020/8/6 9:49
  */
 @RestController
-@RequestMapping("/push")
+@RequestMapping("/sys/push")
 @Api(value = "推理相关API", tags = { "推理相关API" })
 @SuppressWarnings("unchecked")
 public class PushController {
@@ -33,14 +34,16 @@ public class PushController {
     @ApiOperation(value = "基础推理[by:zhaops]", notes = "")
     @PostMapping("/push")
     @SysLogger("push")
-    public RespDTO<PushCoreDTO> push(@RequestBody @Valid PushVO pushVO) {
-        PushCoreDTO data = pushFacade.push(pushVO);
+    @TokenAuth
+    public RespDTO<PushDTO> push(@RequestBody @Valid PushVO pushVO) {
+        PushDTO data = pushFacade.push(pushVO);
         return RespDTO.onSuc(data);
     }
 
     @ApiOperation(value = "开单合理项推理[by:zhaops]", notes = "")
     @PostMapping("/indicationPush")
     @SysLogger("indicationPush")
+    @TokenAuth
     public RespDTO<IndicationDTO> indicationPush(@RequestBody @Valid IndicationPushVO indicationPushVO) {
         IndicationDTO data = pushFacade.indicationPush(indicationPushVO);
         return RespDTO.onSuc(data);

+ 98 - 0
src/main/java/com/diagbot/web/TemplateInfoController.java

@@ -0,0 +1,98 @@
+package com.diagbot.web;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.TemplateInfoDTO;
+import com.diagbot.dto.TemplateInfoPageDTO;
+import com.diagbot.facade.TemplateInfoFacade;
+import com.diagbot.vo.TemplateIdVO;
+import com.diagbot.vo.TemplateInfoPageVO;
+import com.diagbot.vo.TemplateInfoRevampVO;
+import com.diagbot.vo.TemplateInfosIdVO;
+import com.diagbot.vo.TemplateInfosVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ * @author wangfeng
+ * @Description: 演示病历表 前端控制器
+ * @date 2018年11月16日 上午9:14:51
+ */
+@RestController
+@RequestMapping("/demo/templateInfo")
+@Api(value = "演示病历API[by:wangfeng]", tags = { "演示病历API" })
+@SuppressWarnings("unchecked")
+public class TemplateInfoController {
+
+    @Autowired
+    private TemplateInfoFacade templateInfoFacade;
+
+    @ApiOperation(value = "根据病历id修改病历名称[by:wangfeng]",
+            notes = "id;//病历</br>modeName;"
+            + "//病历名</br>doctorId;")
+    @PostMapping("/updateByIdUsNames")
+    @SysLogger("updateByIdUsNames")
+    @Transactional
+    public RespDTO<Boolean> updateByIdUsNames(@Valid @RequestBody TemplateInfoRevampVO templateInfoRevampVO) {
+        boolean res = templateInfoFacade.updateByIdUsName(templateInfoRevampVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "保存病历病历[by:wangfeng]",
+            notes = "modeName;//病历名字</br>" +
+            "sex;//性别</br>" +
+            "age;//年龄</br>" +
+            "patName;//病人姓名</br>" +
+            "doctorName;//医生姓名</br>" +
+            "inquiryCode;//门诊号</br>" +
+            "cardNo;//卡号</br>" +
+            "deptName;//科室名称</br>" +
+            "inquiryDate;//就诊时间</br>" +
+            "preview;//预览文本</br>" +
+            "dataJson;//病历数据</br>")
+    @PostMapping("/saveTemplateInfo")
+    @SysLogger("saveTemplateInfo")
+    @Transactional
+    public RespDTO<Boolean> saveTemplateInfo(@Valid @RequestBody TemplateInfosVO templateInfosVO) {
+        boolean res = templateInfoFacade.saveTemplateInfo(templateInfosVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "根据病历id批量删除病历病历[by:wangfeng]",
+            notes = "ids: 病历ids<br>'ids':'1,2,3,4,5,6'")
+    @PostMapping("/cancelTemplateInfos")
+    @SysLogger("cancelTemplateInfos")
+    @Transactional
+    public RespDTO<Boolean> cancelTemplateInfos(@Valid @RequestBody TemplateInfosIdVO templateInfosIdVO) {
+        boolean res = templateInfoFacade.cancelTemplateInfo(templateInfosIdVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "分页查询病历病历列表[by:wangfeng]",
+            notes = "sex:性别<br>"
+                    + "name:病历名称")
+    @PostMapping("/getTemplatePageAlls")
+    @SysLogger("getTemplatePageAlls")
+    public RespDTO<IPage<TemplateInfoPageDTO>> getTemplatePageAll(@Valid @RequestBody TemplateInfoPageVO templateInfoPageVO) {
+        IPage<TemplateInfoPageDTO> data = templateInfoFacade.getTemplatePageAlls(templateInfoPageVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据病历id获取病历病历内容[by:wangfeng]",
+            notes = "id: 请输入病历id")
+    @PostMapping("/getTemplatebyId")
+    @SysLogger("getTemplatebyId")
+    public RespDTO<TemplateInfoDTO> getTemplatebyId(@Valid @RequestBody TemplateIdVO templateIdVO) {
+        TemplateInfoDTO data = templateInfoFacade.getTemplatebyId(templateIdVO);
+        return RespDTO.onSuc(data);
+    }
+}

+ 1 - 1
src/main/java/com/diagbot/web/TokenPermissionController.java

@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @RequestMapping("/sys/tokenPermission")
-@Api(value = "医院接口对应相关API", tags = { "医院接口对应相关API" })
+@Api(value = "医院权限缓存API", tags = { "医院权限缓存API" })
 @SuppressWarnings("unchecked")
 public class TokenPermissionController {
     @Autowired

+ 4 - 0
src/main/java/com/diagbot/web/VersionDetailController.java

@@ -3,6 +3,7 @@ package com.diagbot.web;
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * <p>
@@ -14,6 +15,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
  */
 @Controller
 @RequestMapping("/sys/versionDetail")
+@SuppressWarnings("unchecked")
+@ApiIgnore
+@Deprecated
 public class VersionDetailController {
 
 }

+ 1 - 1
src/main/resources/application-dev.yml

@@ -167,7 +167,7 @@ swagger:
 
 #Token鉴权
 tokenAuth:
-  enable: true
+  enable: false
 
 #病历质控地址
 mrqc:

+ 1 - 1
src/main/resources/application-local.yml

@@ -167,7 +167,7 @@ swagger:
 
 #Token鉴权
 tokenAuth:
-  enable: true
+  enable: false
 
 #病历质控地址
 mrqc:

+ 41 - 0
src/main/resources/mapper/TemplateInfoMapper.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.TemplateInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.TemplateInfo">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="name" property="name" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="sex" property="sex" />
+        <result column="age" property="age" />
+        <result column="pat_name" property="patName" />
+        <result column="doctor_name" property="doctorName" />
+        <result column="inquiry_code" property="inquiryCode" />
+        <result column="card_no" property="cardNo" />
+        <result column="dept_name" property="deptName" />
+        <result column="inquiry_date" property="inquiryDate" />
+        <result column="preview" property="preview" />
+        <result column="data_json" property="dataJson" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getTemplatePages" resultType="com.diagbot.dto.TemplateInfoPageDTO">
+        SELECT distinct  *
+        FROM
+        demo_template_info
+        WHERE is_deleted = "N"
+        <if test="hospitalId != null">
+            and hospital_id = #{hospitalId}
+        </if>
+        <if test="name != null and name != ''">
+            and UPPER(TRIM(name)) like concat('%',UPPER(TRIM(#{name})),'%')
+        </if>
+    </select>
+</mapper>

+ 2 - 2
src/test/java/com/diagbot/CodeGeneration.java

@@ -54,9 +54,9 @@ public class CodeGeneration {
 
         // 策略配置
         StrategyConfig strategy = new StrategyConfig();
-//        strategy.setTablePrefix(new String[] { "med_" });// 此处可以修改为您的表前缀
+        strategy.setTablePrefix(new String[] { "demo_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "med_crisis_info"}); // 需要生成的表
+        strategy.setInclude(new String[] { "demo_template_info"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);