Bläddra i källkod

病案首页定位

zhangzw 4 år sedan
förälder
incheckning
092f35ce12

+ 2 - 0
src/main/java/com/diagbot/dto/MsgDTO.java

@@ -30,6 +30,8 @@ public class MsgDTO {
     private String code;
     //提示信息
     private String info;
+    //提示信息(idNum)
+    private String idNum;
     //标准提示信息
     private String standardMsg;
     // 操作类型(1:新增,2:删除,3:修改)

+ 39 - 16
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -21,7 +21,6 @@ import com.diagbot.util.MapUtil;
 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;
@@ -37,13 +36,10 @@ import com.diagbot.vo.RecordContentVO;
 import com.diagbot.vo.TaskVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-
 import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
-
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -941,7 +937,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         analyzeVO.setHospitalId(hospitalId);
 
         // 处理公共数据
-            QueryVo  queryVo = dealCommonData(hospitalId, analyzeVO);
+        QueryVo  queryVo = dealCommonData(hospitalId, analyzeVO);
         queryVo.setUseCrfCache(analyzeVO.isUseCrfCache());
         //  调用质控接口
         Response<OutputInfo> response = qcServiceClient.extract(queryVo);
@@ -958,11 +954,13 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         List<String> codeList = new ArrayList<>();
         // code和info的映射map
         Map<String, String> codeToInfoMap = new LinkedHashMap<>();
+        // code和idNum的映射map
+        Map<String, String> codeToIdNumMap = new LinkedHashMap<>();
         // 对codeList 和 codeToInfoMap进行赋值
-        setCodeData(outputInfo, codeList, codeToInfoMap);
+        setCodeData(outputInfo, codeList, codeToInfoMap, codeToIdNumMap);
 
         // 计算分值并保存结果至数据库
-        Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
+        Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, codeToIdNumMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
         AlgorithmDTO algorithmDTO = (AlgorithmDTO) resMap.get("algorithmDTO");
         Date date = (Date) resMap.get("date");
 
@@ -1566,12 +1564,14 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         List<String> codeList = new ArrayList<>();
         // code和info的映射map
         Map<String, String> codeToInfoMap = new LinkedHashMap<>();
+        // code和idNum的映射map
+        Map<String, String> codeToIdNumMap = new LinkedHashMap<>();
         // 对codeList 和 codeToInfoMap进行赋值
-        setCodeData(outputInfo, codeList, codeToInfoMap);
+        setCodeData(outputInfo, codeList, codeToInfoMap, codeToIdNumMap);
         AlgorithmDTO algorithmDTO = new AlgorithmDTO();
         // 如果是1,说明已是终末质控,不再保存质控结果数据;如果是0,则保存质控结果数据
         if ("0".equals(analyzeRunVO.getIsPlacefile())) {
-            Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
+            Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, codeToIdNumMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
             algorithmDTO = (AlgorithmDTO) resMap.get("algorithmDTO");
         }else{
             //终末质控不保存数据
@@ -1617,8 +1617,8 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                         .divide(new BigDecimal(100), 1, RoundingMode.HALF_UP));
             }
 
-        //缺陷总数
-        Long num = msgDTOList
+        	//缺陷总数
+        	Long num = msgDTOList
                 .stream()
                 .filter(Objects::nonNull)
                 .count();
@@ -1733,7 +1733,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         Long hospitalId = analyzeVO.getHospitalId();
 
         // 处理公共数据
-            QueryVo queryVo = dealCommonData(hospitalId, analyzeVO);
+        QueryVo queryVo = dealCommonData(hospitalId, analyzeVO);
         //  调用质控接口
         Response<OutputInfo> response = qcServiceClient.extract(queryVo);
         if (response == null || response.getData() == null) {
@@ -1749,13 +1749,15 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         List<String> codeList = new ArrayList<>();
         // code和info的映射map
         Map<String, String> codeToInfoMap = new LinkedHashMap<>();
+        // code和idNum的映射map
+        Map<String, String> codeToIdNumMap = new LinkedHashMap<>();
         // 对codeList 和 codeToInfoMap进行赋值
-        setCodeData(outputInfo, codeList, codeToInfoMap);
+        setCodeData(outputInfo, codeList, codeToInfoMap, codeToIdNumMap);
 
         // 如果是1,说明已是终末质控,不再保存质控结果数据;如果是0,则保存质控结果数据
         if ("0".equals(analyzeRunVO.getIsPlacefile())) {
             // 计算分值并保存结果至数据库
-            Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
+            Map<String, Object> resMap = calScoreAndSave(outputInfo, codeList, codeToInfoMap, codeToIdNumMap, analyzeVO, queryVo.getBehospitalInfo().getIsPlacefile());
         }
 
         // 返回缺陷提示信息
@@ -1776,6 +1778,16 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                     }
                 }
             }
+
+            // 设置idNum信息
+            if (codeToIdNumMap != null && !codeToIdNumMap.isEmpty()) {
+                for (MsgDTO msgDTO : msgDTOList) {
+                    String idNum = codeToIdNumMap.get(msgDTO.getIdNum());
+                    if (StringUtil.isNotBlank(idNum)) {
+                        msgDTO.setIdNum(idNum);
+                    }
+                }
+            }
         }
 
         //返回参数组装
@@ -1997,7 +2009,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @param codeList      质控编码列表
      * @param codeToInfoMap 质控编码对应的info信息
      */
-    public void setCodeData(OutputInfo outputInfo, List<String> codeList, Map<String, String> codeToInfoMap) {
+    public void setCodeData(OutputInfo outputInfo, List<String> codeList, Map<String, String> codeToInfoMap, Map<String, String> codeToIdNumMap) {
         Map<String, Map<String, String>> codeMap = outputInfo.getResult();
         for (String key : codeMap.keySet()) {
             codeList.add(key);
@@ -2005,6 +2017,9 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             if (mapInfo != null && StringUtil.isNotBlank(mapInfo.get("info"))) {
                 codeToInfoMap.put(key, mapInfo.get("info"));
             }
+            if (mapInfo != null && StringUtil.isNotBlank(mapInfo.get("id"))) {
+                codeToIdNumMap.put(key, mapInfo.get("id"));
+            }
         }
     }
 
@@ -2066,7 +2081,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
      * @return
      */
     public Map<String, Object> calScoreAndSave(OutputInfo outputInfo, List<String> codeList,
-                                               Map<String, String> codeToInfoMap, AnalyzeVO analyzeVO,
+                                               Map<String, String> codeToInfoMap, Map<String, String> codeToIdNumMap, AnalyzeVO analyzeVO,
                                                String isPlacefile) {
         Long hospitalId = analyzeVO.getHospitalId();
         List<QcResultAlgVO> qcResultAlgVOList = new ArrayList<>();
@@ -2087,6 +2102,14 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             }
         }
 
+        // 对idNum赋值
+        for (QcResultAlgVO bean : qcResultAlgVOList) {
+            String idNum = codeToIdNumMap.get(bean.getIdNum());
+            if (StringUtil.isNotBlank(idNum)) {
+                bean.setIdNum(idNum);
+            }
+        }
+
         // 评分
         AlgorithmVO algorithmVO = new AlgorithmVO();
         algorithmVO.setType(0);

+ 1 - 1
src/main/java/com/diagbot/util/YiWuFirstPageRecordXmlUtil.java

@@ -358,7 +358,7 @@ public class YiWuFirstPageRecordXmlUtil {
                         }
                     } else {
                         boolean flag = false;
-                        if ("诊断类型".equals(entry.getKey()) && values[0].contains("诊断")) {
+                        if ("诊断类型".equals(entry.getKey()) && values[0].contains("诊断") && array.size() > 0) {
                             array.getJSONObject(0).put("诊断类别", values[0].replace(":", ""));
                             flag = true;
                         }

+ 2 - 0
src/main/java/com/diagbot/vo/QcResultAlgVO.java

@@ -29,6 +29,8 @@ public class QcResultAlgVO {
     private String code;
     //质控返回info
     private String info;
+    //质控返回info
+    private String idNum;
     //单项否决(1-单项否决 0-非)
     private Integer isReject;
 }