Parcourir la source

Merge branch 'dev/20200831_cds' into debug

rengb il y a 4 ans
Parent
commit
0d06c0e64d

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -158,6 +158,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/data/sendHomeOperation").permitAll()
                 .antMatchers("/qc/data/sendCrisis").permitAll()
                 .antMatchers("/qc/doctoradvice/getPage").permitAll()
+                .antMatchers("/qc/behospitalInfo/analyzeCds").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -202,6 +202,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/data/sendHomeOperation", request)
                 || matchers("/qc/data/sendCrisis", request)
                 || matchers("/qc/doctoradvice/getPage", request)
+                || matchers("/qc/behospitalInfo/analyzeCds", request)
                 || matchers("/", request)) {
             return true;
         }

+ 66 - 0
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -32,6 +32,7 @@ import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.AlgorithmVO;
 import com.diagbot.vo.AnalyzeApiVO;
+import com.diagbot.vo.AnalyzeCdsVO;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeRunVO;
 import com.diagbot.vo.AnalyzeVO;
@@ -44,6 +45,8 @@ import com.diagbot.vo.QcResultAlgVO;
 import com.diagbot.vo.QueryVo;
 import com.diagbot.vo.RecordContentVO;
 import com.diagbot.vo.TaskVO;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -1268,4 +1271,67 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         map.put("date", date);
         return map;
     }
+
+    /**
+     * cds访问质控接口
+     *
+     * @param analyzeCdsVO
+     * @return
+     */
+    public Map<String,String> analyzeCds(AnalyzeCdsVO analyzeCdsVO) {
+        Map<String,String> ret = Maps.newHashMap();
+        List<QcCasesEntryDTO> qcCasesEntryDTOList = qcCasesEntryFacade.getQcCasesEntryCds(analyzeCdsVO);
+        Map<String,String> codeMsgMap = qcCasesEntryDTOList.stream().collect(Collectors.toMap(i->i.getCode(),i->i.getMsg()));
+
+        QueryVo queryVo = new QueryVo();
+        queryVo.setCid(basHospitalInfoFacade.getHosCode(analyzeCdsVO.getHospitalId())); // 设置医院编码
+        queryVo.setHospitalId(String.valueOf(analyzeCdsVO.getHospitalId()));
+        queryVo.setInputCatalogueMap(getInputCatalogueMap(qcCasesEntryDTOList)); // 设置质控条目编码
+        queryVo.setUseCrfCache(false);
+
+        List<MedrecVo> medrecVoList = new ArrayList<>(); // 设置内容
+
+        MedrecVo outDepMedrecVo = new MedrecVo();
+        outDepMedrecVo.setTitle("门诊");
+        Map<String, Object> outDepContent = new HashMap<>();
+        List<Map<String, String>> outDepMaps = Lists.newArrayList();
+        Map<String, String> outDepMap = Maps.newHashMap();
+        outDepMap.put("主诉", analyzeCdsVO.getChief());
+        outDepMap.put("现病史", analyzeCdsVO.getSymptom());
+        outDepMap.put("既往史", analyzeCdsVO.getPasts());
+        outDepMaps.add(outDepMap);
+        outDepContent.put("content", outDepMaps);
+        outDepMedrecVo.setContent(outDepContent);
+        medrecVoList.add(outDepMedrecVo);
+
+        MedrecVo beInfoMedrecVo = new MedrecVo();
+        beInfoMedrecVo.setTitle("住院病历信息");
+        List<BehospitalInfo> behospitalInfoList = Lists.newArrayList();
+        BehospitalInfo behospitalInfo = new BehospitalInfo();
+        behospitalInfo.setBehospitalCode("cds-menzhen");
+        behospitalInfoList.add(behospitalInfo);
+        Map<String, Object> beInfoContent = new HashMap<>();
+        beInfoContent.put("content", behospitalInfoList);
+        beInfoMedrecVo.setContent(beInfoContent);
+        medrecVoList.add(beInfoMedrecVo);
+        queryVo.setBehospitalInfo(behospitalInfo);
+        queryVo.setMedrec(medrecVoList);
+
+        Response<OutputInfo> response = qcServiceClient.extract(queryVo);
+        if (response == null || response.getData() == null) {
+            if (null == response) {
+                throw new CommonException(CommonErrorCode.RPC_ERROR, "远程质控接口没有返回数据!");
+            } else {
+                throw new CommonException(CommonErrorCode.RPC_ERROR, "远程质控接口没有返回数据!错误原因:" + response.getMsg());
+            }
+        }
+
+        OutputInfo outputInfo = response.getData();
+        outputInfo.getResult().keySet().forEach(key->{
+            ret.put(codeMsgMap.get(key),outputInfo.getResult().get(key).get("info"));
+        });
+
+        return ret;
+    }
+
 }

+ 10 - 0
src/main/java/com/diagbot/facade/QcCasesEntryFacade.java

@@ -1,8 +1,13 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.QcCasesEntryDTO;
 import com.diagbot.service.impl.QcCasesEntryServiceImpl;
+import com.diagbot.vo.AnalyzeCdsVO;
+import com.diagbot.vo.AnalyzeVO;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Description:
  * @author: gaodm
@@ -10,4 +15,9 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class QcCasesEntryFacade extends QcCasesEntryServiceImpl {
+
+    public List<QcCasesEntryDTO> getQcCasesEntryCds(AnalyzeCdsVO analyzeCdsVO){
+        return baseMapper.getQcCasesEntryCds(analyzeCdsVO);
+    }
+
 }

+ 3 - 0
src/main/java/com/diagbot/mapper/QcCasesEntryMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.diagbot.dto.QcCasesEntryDTO;
 import com.diagbot.dto.QcCasesEntrySimpleDTO;
 import com.diagbot.entity.QcCasesEntry;
+import com.diagbot.vo.AnalyzeCdsVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.QcEntryHospitalVO;
 import com.diagbot.vo.QcResultAlgQueryVO;
@@ -24,6 +25,8 @@ public interface QcCasesEntryMapper extends BaseMapper<QcCasesEntry> {
 
     List<QcCasesEntryDTO> getQcCasesEntry(AnalyzeVO analyzeVO);
 
+    List<QcCasesEntryDTO> getQcCasesEntryCds(AnalyzeCdsVO analyzeCdsVO);
+
     List<QcResultAlgVO> getQcResultAlgVO(QcResultAlgQueryVO qcResultAlgQueryVO);
 
     List<QcCasesEntrySimpleDTO> index(QcTypeIndexVO qcTypeIndexVO);

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

@@ -0,0 +1,22 @@
+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 lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description: cds访问质控传参
+ * @author: Mark Huang
+ * @Time: 2019/04/04 :15:14
+ */
+@Getter
+@Setter
+public class AnalyzeCdsVO extends SearchData {
+
+}

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

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/7/29 18:37
+ */
+@Getter
+@Setter
+public class HospitalBaseVO {
+    // 医院ID
+    @NotNull(message = "请输入医院id")
+    private Long hospitalId;
+}

+ 13 - 0
src/main/java/com/diagbot/vo/ItemExt.java

@@ -0,0 +1,13 @@
+package com.diagbot.vo;
+
+import com.diagbot.biz.push.entity.Item;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/8/31 11:17
+ */
+public class ItemExt extends Item {
+    // 备注内容
+    private String remark;
+}

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

@@ -0,0 +1,168 @@
+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 lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/7/29 15:31
+ */
+@Getter
+@Setter
+public class SearchData extends HospitalBaseVO {
+    /**
+     * 大数据返回内容截取长度
+     */
+    private Integer length = 10;
+    /**
+     * 年龄
+     */
+    private Integer age;
+    /**
+     * 性别(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<Item> 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<Item> 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;
+}

+ 11 - 0
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -5,10 +5,12 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.AnalyzeRunDTO;
 import com.diagbot.dto.BehospitalInfoDTO;
+import com.diagbot.dto.OutputInfo;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.BehospitalInfoFacade;
 import com.diagbot.facade.QcresultInfoFacade;
 import com.diagbot.vo.AnalyzeApiVO;
+import com.diagbot.vo.AnalyzeCdsVO;
 import com.diagbot.vo.AnalyzeRunVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
@@ -254,4 +256,13 @@ public class BehospitalInfoController {
     public void exportQcresultByGroup(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
         behospitalInfoFacade.exportQcresultByGroup(response, exportQcresultVO);
     }
+
+    @ApiOperation(value = "cds质控[by:rgb]",
+            notes = "")
+    @PostMapping("/analyzeCds")
+    @SysLogger("analyzeCds")
+    public RespDTO<Map<String,String>> analyzeCds(@RequestBody AnalyzeCdsVO analyzeCdsVO) {
+        return RespDTO.onSuc(behospitalInfoFacade.analyzeCds(analyzeCdsVO));
+    }
+
 }

+ 21 - 0
src/main/resources/mapper/QcCasesEntryMapper.xml

@@ -56,6 +56,27 @@
         </if>
 	</select>
 
+    <select id="getQcCasesEntryCds" parameterType="com.diagbot.vo.AnalyzeCdsVO" resultType="com.diagbot.dto.QcCasesEntryDTO">
+        SELECT
+        d.`code`,
+        d.mode_id,
+        c.msg
+        FROM
+        qc_type a
+        JOIN qc_type_cases_entry b ON a.id = b.type_id
+        JOIN qc_cases_entry_hospital c ON b.case_entry_id = c.cases_entry_id
+        JOIN qc_cases_entry d ON c.cases_entry_id = d.id
+        WHERE
+        a.hospital_id = #{hospitalId}
+        AND a.is_deleted = 'N'
+        AND a.`name` = '门诊'
+        AND b.is_deleted = 'N'
+        AND c.hospital_id = #{hospitalId}
+        AND c.is_deleted = 'N'
+        AND c.is_used = 1
+        AND d.is_deleted = 'N'
+    </select>
+
     <select id="getQcResultAlgVO" parameterType="com.diagbot.vo.QcResultAlgQueryVO" resultType="com.diagbot.vo.QcResultAlgVO">
         SELECT DISTINCT
             t4.cases_id AS casesId,