|
@@ -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);
|