licy il y a 3 ans
Parent
commit
0aefd3a2cc

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

@@ -178,6 +178,10 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/dataPage/docking/getDataEngine", request)
                 || matchers("/dataPage/docking/addUserAndRole", request)
                 || matchers("/term/termMatching", request)
+                || matchers("/dataPage/docking/getDataService", request)
+                || matchers("/dataPage/docking/getStaticKnowledge", request)
+                || matchers("/dataPage/docking/getDataEngine", request)
+                || matchers("/dataPage/docking/addUserAndRole", request)
                 || matchers("/", request)) {
             return true;
         }

+ 48 - 9
src/main/java/com/diagbot/facade/DataPageDockFacade.java

@@ -43,12 +43,32 @@ public class DataPageDockFacade {
      * @Author:liuqq
      * @time: ${DATE} ${TIME}
      **/
-    public RespDTO<String> getStaticKnowledge(StaticKnowledgeHISVO staticKnowledgeHISVO){
-        String url=dataPageUrl+"/informationOut.html?hospitalId="+staticKnowledgeHISVO.getHospitalId()
-                +"&type="+staticKnowledgeHISVO.getType()
-                +"&hisName="+staticKnowledgeHISVO.getHisName();
-        if(StringUtil.isNotEmpty(staticKnowledgeHISVO.getHisDetailName())){
-            url+="&hisDetailName="+staticKnowledgeHISVO.getHisDetailName();
+    public RespDTO<String> getStaticKnowledge(HisStaticKnowledgeVO hisStaticKnowledgeVO){
+        if(StringUtil.isNotEmpty(hisStaticKnowledgeVO.getHospitalCode()) && StringUtil.isNotEmpty(hisStaticKnowledgeVO.getHospitalName())){
+            //查找基层医院术语,等新表构建后编写业务
+            hisStaticKnowledgeVO.setHospitalId(null);
+        }else if(hisStaticKnowledgeVO.getHospitalId()==null){
+             return RespDTO.onError("请输入医院id");
+        }
+
+        String url=dataPageUrl+"/informationOut.html?hospitalId="+hisStaticKnowledgeVO.getHospitalId()
+                +"&type="+hisStaticKnowledgeVO.getType()
+                +"&hisName="+hisStaticKnowledgeVO.getHisName();
+        if(StringUtil.isNotEmpty(hisStaticKnowledgeVO.getHisDetailName())){
+            url+="&hisDetailName="+hisStaticKnowledgeVO.getHisDetailName();
+        }
+        try{
+            TranDatadockingLog tranDatadockingLog=new TranDatadockingLog();
+            tranDatadockingLog.setHospitalId(hisStaticKnowledgeVO.getHospitalId());
+            tranDatadockingLog.setParamIn(JSON.toJSONString(hisStaticKnowledgeVO));
+            tranDatadockingLog.setParamOut(url);
+            tranDatadockingLog.setRemark("页面推送模式,静态知识:"+hisStaticKnowledgeVO.getType());
+
+            tranDatadockingLog.setTransTime(new Date());
+
+            dataDockingLogFacade.save(tranDatadockingLog);
+        }catch (Exception e){
+            log.error("页面推送模式,增加日志异常",e.getMessage());
         }
         return RespDTO.onSuc(url);
     }
@@ -60,7 +80,10 @@ public class DataPageDockFacade {
      **/
     public RespDTO<String> getDataService(DataPageDockVO dataPageDockVO) {
         //参数校验
-        if(dataPageDockVO.getHospitalId()==null){
+        if(StringUtil.isNotEmpty(dataPageDockVO.getHospitalCode()) && StringUtil.isNotEmpty(dataPageDockVO.getHospitalName())){
+            //查找基层医院术语,等新表构建后编写业务
+            dataPageDockVO.setHospitalId(null);
+        }if(dataPageDockVO.getHospitalId()==null){
             return RespDTO.onError("请输入医院id");
         }else if("".equals(dataPageDockVO.getShowType())){
             return RespDTO.onError("请输入展示类型,横版:ver,或竖版hor");
@@ -79,7 +102,8 @@ public class DataPageDockFacade {
             IndicationPushVO indicationPushVO=new IndicationPushVO();
             //初始化开单合理性入参
             BeanUtil.copyProperties(dataPageDockVO,indicationPushVO);
-            indicationPushVO.setRuleType("1,2,3,4");
+            //ruleType(1:危急值提醒,2:开单合理项,3:高危药品、手术,4:其他提醒)
+            indicationPushVO.setRuleType("2,3,4");
             IndicationDTO indicationDTO = pushFacade.indicationPush(indicationPushVO);
             if (indicationDTO != null) {
                 if (ListUtil.isNotEmpty(indicationDTO.getBillMsgList()) || ListUtil.isNotEmpty(indicationDTO.getHighRiskList())
@@ -153,10 +177,25 @@ public class DataPageDockFacade {
     public RespDTO getEngineIndicationPush(DataEngineVO dataEngineVO) {
         IndicationPushVO indicationPushVO=new IndicationPushVO();
         BeanUtil.copyProperties(dataEngineVO, indicationPushVO);
-        indicationPushVO.setRuleType("1,2,3,4");
+        //ruleType(1:危急值提醒,2:开单合理项,3:高危药品、手术,4:其他提醒)
+        indicationPushVO.setRuleType("2,3,4");
         IndicationDTO indicationDTO=pushFacade.indicationPush(indicationPushVO);
         indicationDTO.setDebug(null);
 
+        try{
+            TranDatadockingLog tranDatadockingLog=new TranDatadockingLog();
+            tranDatadockingLog.setHospitalId(dataEngineVO.getHospitalId());
+            tranDatadockingLog.setParamIn(JSON.toJSONString(dataEngineVO));
+            tranDatadockingLog.setParamOut(JSON.toJSONString(dataEngineVO));
+            tranDatadockingLog.setRemark("数据引擎模式,"+dataEngineVO.getPlanCode());
+
+            tranDatadockingLog.setTransTime(new Date());
+
+            dataDockingLogFacade.save(tranDatadockingLog);
+        }catch (Exception e){
+            log.error("数据引擎模式,增加日志异常",e.getMessage());
+        }
+
         if (indicationDTO != null) {
             if (ListUtil.isNotEmpty(indicationDTO.getBillMsgList()) || ListUtil.isNotEmpty(indicationDTO.getHighRiskList())
                     || ListUtil.isNotEmpty(indicationDTO.getCriticalValList()) || ListUtil.isNotEmpty(indicationDTO.getOtherList()))

+ 9 - 0
src/main/java/com/diagbot/vo/DataEngineVO.java

@@ -29,4 +29,13 @@ public class DataEngineVO extends SearchData{
      */
     @ApiModelProperty(hidden = true)
     private Integer getStaticKnowledge = 0;
+
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+    /**
+     * 医院名称
+     */
+    private String hospitalName;
 }

+ 186 - 4
src/main/java/com/diagbot/vo/DataPageDockVO.java

@@ -1,10 +1,18 @@
 package com.diagbot.vo;
 
+import com.diagbot.biz.push.entity.Item;
+import com.diagbot.biz.push.entity.Lis;
+import com.diagbot.biz.push.entity.Pacs;
+import com.diagbot.biz.push.entity.Scale;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 对外对接基础推理入参
@@ -13,13 +21,187 @@ import javax.validation.constraints.NotNull;
  **/
 @Getter
 @Setter
-public class DataPageDockVO extends SearchData{
+public class DataPageDockVO {
     @NotNull(message = "请输入展示类型,横版:ver,或竖版hor")
     private String showType;//横版:ver,或竖版hor
 
     @NotNull(message = "请输入方案编码")
     private String planCode;//方案编码,用于控制哪些展示项
-
-    //@NotNull(message = "请输入医院编码")
-    //private Long hospitalId;//医院编码
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+    /**
+     * 医院编码
+     */
+    private String hospitalCode;
+    /**
+     * 医院名称
+     */
+    private String hospitalName;
+    /**
+     * 大数据返回内容截取长度
+     */
+    private Integer length = 10;
+    /**
+     * 年龄文本数据
+     */
+    private String age;
+    /**
+     * 年龄数字数据
+     */
+    @ApiModelProperty(hidden = true)
+    private Double ageNum;
+    /**
+     * 性别(1:男,2:女,3:通用)
+     */
+    private Integer sex;
+    /**
+     * 婚姻
+     */
+    private String marriage = "";
+    /**
+     * 主诉
+     */
+    private String chief = "";
+    /**
+     * 现病史
+     */
+    private String symptom = "";
+    /**
+     * 查体
+     */
+    private String vital = "";
+    /**
+     * 既往史
+     */
+    private String pasts = "";
+    /**
+     * 传染病史
+     */
+    private String infectious = "";
+    /**
+     * 手术外伤史
+     */
+    private String surgical = "";
+    /**
+     * 过敏史
+     */
+    private String allergy = "";
+    /**
+     * 接种史
+     */
+    private String vaccination = "";
+    /**
+     * 个人史
+     */
+    private String personal = "";
+    /**
+     * 婚育史
+     */
+    private String marital = "";
+    /**
+     * 家族史
+     */
+    private String family = "";
+    /**
+     * 月经史
+     */
+    private String menstrual = "";
+    /**
+     * 其他史
+     */
+    private String other = "";
+    /**
+     * 化验文本数据
+     */
+    private String lisString = "";
+    /**
+     * 辅检文本数据
+     */
+    private String pacsString = "";
+    /**
+     * 诊断文本数据
+     */
+    private String diagString = "";
+    /**
+     * 药品文本数据
+     */
+    private String drugString = "";
+    /**
+     * 科室
+     */
+    private List<Item> dept = new ArrayList<>();
+    /**
+     * 化验项目和结果
+     */
+    private List<Lis> lis = new ArrayList<>();
+    /**
+     * 辅检项目和结果
+     */
+    private List<Pacs> pacs = new ArrayList<>();
+    /**
+     * 诊断
+     */
+    private List<Item> diag = new ArrayList<>();
+    /**
+     * 药品
+     */
+    private List<Drug> drug = new ArrayList<>();
+    /**
+     * 手术及操作
+     */
+    private List<Item> operation = new ArrayList<>();
+    /**
+     * 输血记录
+     */
+    private List<ItemExt> transfusion = new ArrayList<>();
+    /**
+     * 当前化验开单项
+     */
+    private List<Lis> lisOrder = new ArrayList<>();
+    /**
+     * 当前辅检开单项
+     */
+    private List<Pacs> pacsOrder = new ArrayList<>();
+    /**
+     * 当前诊断开单项
+     */
+    private List<Item> diagOrder = new ArrayList<>();
+    /**
+     * 当前药品开单项
+     */
+    private List<Drug> drugOrder = new ArrayList<>();
+    /**
+     * 当前手术开单项
+     */
+    private List<Item> operationOrder = new ArrayList<>();
+    /**
+     * 当前输血开单项
+     */
+    private List<ItemExt> transfusionOrder = new ArrayList<>();
+    /**
+     * 其他开单项
+     */
+    private List<Item> otherOrder = new ArrayList<>();
+    /**
+     * 选中诊断
+     */
+    private Item diseaseName;
+    /**
+     * 选中手术
+     */
+    private Item operationName;
+    /**
+     * 其他指标
+     */
+    private Map<String, String> otherIndex;
+    /**
+     * 其他医嘱
+     */
+    private List<Item> otherAdvice = new ArrayList<>();
+    /**
+     * 量表结果
+     */
+    private List<Scale> scale = new ArrayList<>();
 }

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

@@ -4,10 +4,7 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.DataPageDockFacade;
 import com.diagbot.facade.UserDockFacade;
-import com.diagbot.vo.DataEngineVO;
-import com.diagbot.vo.DataPageDockVO;
-import com.diagbot.vo.StaticKnowledgeHISVO;
-import com.diagbot.vo.UserInfoVO;
+import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.ss.formula.functions.T;
@@ -44,8 +41,8 @@ public class DataPageDockController {
             notes = "")
     @PostMapping("/getStaticKnowledge")
     @SysLogger("getStaticKnowledge")
-    public RespDTO<String> getStaticKnowledge(@Valid @RequestBody StaticKnowledgeHISVO staticKnowledgeHISVO){
-        return dataPageDockFacade.getStaticKnowledge(staticKnowledgeHISVO);
+    public RespDTO<String> getStaticKnowledge(@Valid @RequestBody HisStaticKnowledgeVO hisStaticKnowledgeVO){
+        return dataPageDockFacade.getStaticKnowledge(hisStaticKnowledgeVO);
     }
 
     @ApiOperation(value = "数据引擎模式-对接API[QQ]",
@@ -62,7 +59,7 @@ public class DataPageDockController {
             //医嘱推送
             dataEngineVO.setFeatureType("5,6,8,10");
             return RespDTO.onSuc(dataPageDockFacade.getEnginePush(dataEngineVO));
-        }else if("order_rational".equals(dataEngineVO.getPlanCode())){
+        }else if("order_rational".equals(dataEngineVO.getPlanCode())  || "reference_pacs".equals(dataEngineVO.getPlanCode()) || "reference_lis".equals(dataEngineVO.getPlanCode())){
             //规则类型(1:危急值提醒,2:开单合理项,3:高危药品、手术,4:其他提醒)
             //开单合理性
             dataEngineVO.setRuleType("1,2,3,4");