|
@@ -6,6 +6,7 @@ import com.diagbot.dto.LisResult;
|
|
|
import com.diagbot.dto.PacsResult;
|
|
|
import com.diagbot.dto.RespDTO;
|
|
|
import com.diagbot.dto.SysSetInfoDTO;
|
|
|
+import com.diagbot.enums.FeatureTypeEnum;
|
|
|
import com.diagbot.enums.LisSourceEnum;
|
|
|
import com.diagbot.enums.SysTypeEnum;
|
|
|
import com.diagbot.util.BeanUtil;
|
|
@@ -37,7 +38,6 @@ public class TransferFacade {
|
|
|
@Autowired
|
|
|
private TranServiceClient tranServiceClient;
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 查询对接状态
|
|
|
*
|
|
@@ -76,7 +76,7 @@ public class TransferFacade {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 增加化验公表项
|
|
|
+ * 化验结果增肌公表名
|
|
|
*
|
|
|
* @param lisResults
|
|
|
* @param hosCode
|
|
@@ -126,30 +126,9 @@ public class TransferFacade {
|
|
|
return retLisResults;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取化验公表映射关系
|
|
|
- *
|
|
|
- * @param nameList
|
|
|
- * @param hosCode
|
|
|
- * @return
|
|
|
- */
|
|
|
- public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(List<String> nameList, String hosCode) {
|
|
|
- Map<String, Map<String, List<String>>> lisConfigMap = new LinkedHashMap<>();
|
|
|
- if (ListUtil.isNotEmpty(nameList) && StringUtil.isNotBlank(hosCode)) {
|
|
|
- LisConfigVO lisConfigVO = new LisConfigVO();
|
|
|
- lisConfigVO.setHosCode(hosCode);
|
|
|
- lisConfigVO.setMealNameList(nameList);
|
|
|
- RespDTO<Map<String, Map<String, List<String>>>> lisConfigRes
|
|
|
- = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
|
|
|
- if (RespDTOUtil.respIsOK(lisConfigRes)) {
|
|
|
- lisConfigMap = lisConfigRes.data;
|
|
|
- }
|
|
|
- }
|
|
|
- return lisConfigMap;
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
- * 辅检公表转换
|
|
|
+ * 辅检结果增加公表名(辅检项目名称)
|
|
|
*
|
|
|
* @param pacsArr
|
|
|
* @param hosCode
|
|
@@ -185,111 +164,91 @@ public class TransferFacade {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 化验字符串映射转换,仅限套餐
|
|
|
+ * 获取化验公表映射关系
|
|
|
*
|
|
|
- * @param lisStr
|
|
|
+ * @param nameList
|
|
|
* @param hosCode
|
|
|
* @return
|
|
|
*/
|
|
|
- public String lisStrConvert(String lisStr, String hosCode) {
|
|
|
- String retLisStr = "";
|
|
|
- if (StringUtil.isBlank(lisStr)) {
|
|
|
- return retLisStr;
|
|
|
- }
|
|
|
- String[] lisArr = lisStr.replace(" ", "").split(",|,|;|;");
|
|
|
- List<String> lisList = Arrays.asList(lisArr);
|
|
|
- Map<String, Map<String, List<String>>> map = getLisConfigByMealNameAndHosCode(lisList, hosCode);
|
|
|
- if (map != null) {
|
|
|
- for (String lis : lisList) {
|
|
|
- Map<String, List<String>> itemMap = map.get(lis);
|
|
|
- if (itemMap != null && itemMap.get("") != null) {
|
|
|
- retLisStr += String.join(",", itemMap.get("")) + ",";
|
|
|
- }
|
|
|
+ public Map<String, Map<String, List<String>>> getLisConfigByMealNameAndHosCode(List<String> nameList, String hosCode) {
|
|
|
+ Map<String, Map<String, List<String>>> lisConfigMap = new LinkedHashMap<>();
|
|
|
+ if (ListUtil.isNotEmpty(nameList) && StringUtil.isNotBlank(hosCode)) {
|
|
|
+ LisConfigVO lisConfigVO = new LisConfigVO();
|
|
|
+ lisConfigVO.setHosCode(hosCode);
|
|
|
+ lisConfigVO.setMealNameList(nameList);
|
|
|
+ RespDTO<Map<String, Map<String, List<String>>>> lisConfigRes
|
|
|
+ = tranServiceClient.getLisConfigByMealNameAndHosCode(lisConfigVO);
|
|
|
+ if (RespDTOUtil.respIsOK(lisConfigRes)) {
|
|
|
+ lisConfigMap = lisConfigRes.data;
|
|
|
}
|
|
|
}
|
|
|
- if (retLisStr.endsWith(",")) {
|
|
|
- retLisStr = retLisStr.substring(0, retLisStr.length() - 1);
|
|
|
- }
|
|
|
- return retLisStr;
|
|
|
+ return lisConfigMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 辅检字符串映射转换
|
|
|
+ * 外部项目名称转内部名称-字符串格式
|
|
|
*
|
|
|
- * @param pacsStr
|
|
|
- * @param hosCode
|
|
|
+ * @param originalStr 原始数据
|
|
|
+ * @param hosCode 医院编码
|
|
|
+ * @param type 5-化验(仅限套餐),6-辅检,7-诊断
|
|
|
* @return
|
|
|
*/
|
|
|
- public String pacsStrConvert(String pacsStr, String hosCode) {
|
|
|
- String retPacsStr = "";
|
|
|
- if (StringUtil.isBlank(pacsStr)) {
|
|
|
- return retPacsStr;
|
|
|
- }
|
|
|
- String[] pacsArr = pacsStr.replace(" ", "").split(",|,|;|;");
|
|
|
- PacsConfigVO pacsConfigVO = new PacsConfigVO();
|
|
|
- pacsConfigVO.setHosCode(hosCode);
|
|
|
- pacsConfigVO.setMealNameList(Arrays.asList(pacsArr));
|
|
|
- RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
|
|
|
- if (RespDTOUtil.respIsOK(pacsRespDTO)) {
|
|
|
- Map<String, List<String>> pacsMap = pacsRespDTO.data;
|
|
|
- for (Map.Entry<String, List<String>> entry : pacsMap.entrySet()) {
|
|
|
- if (ListUtil.isNotEmpty(entry.getValue())) {
|
|
|
- retPacsStr += String.join(",", entry.getValue()) + ",";
|
|
|
- }
|
|
|
- }
|
|
|
+ public String strConvert(String originalStr, String hosCode, Integer type) {
|
|
|
+ String retStr = "";
|
|
|
+ if (StringUtil.isBlank(originalStr)) {
|
|
|
+ return retStr;
|
|
|
}
|
|
|
- if (retPacsStr.endsWith(",")) {
|
|
|
- retPacsStr = retPacsStr.substring(0, retPacsStr.length() - 1);
|
|
|
- }
|
|
|
- return retPacsStr;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 诊断名称映射转换
|
|
|
- *
|
|
|
- * @param diseaseStr
|
|
|
- * @param hosCode
|
|
|
- * @param type 1-外部名称转内部名称,2-内部名称转外部名称
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String convertDisease(String diseaseStr, String hosCode, Integer type) {
|
|
|
- String[] diseases = diseaseStr.replace(" ", "").split(",|,|;|;");
|
|
|
- List<String> diseaseList = Arrays.asList(diseases);
|
|
|
- diseaseList = diseaseList
|
|
|
+ String[] strArr = originalStr
|
|
|
+ .replace(" ", "")
|
|
|
+ .split(",|,|;|;");
|
|
|
+ List<String> strList = Arrays.asList(strArr);
|
|
|
+ strList = strList
|
|
|
.stream()
|
|
|
- .filter(i -> StringUtil.isNotBlank(i))
|
|
|
+ .filter(str -> StringUtil.isNotBlank(str))
|
|
|
.distinct()
|
|
|
.collect(Collectors.toList());
|
|
|
- DiseaseIcdVO diseaseIcdVO = new DiseaseIcdVO();
|
|
|
- diseaseIcdVO.setHosCode(hosCode);
|
|
|
- if (type.equals(1)) {
|
|
|
- diseaseIcdVO.setDiseaseNameList(diseaseList);
|
|
|
- } else if (type.equals(2)) {
|
|
|
- diseaseIcdVO.setConceptDisNameList(diseaseList);
|
|
|
- }
|
|
|
- String convertDiag = "";
|
|
|
- Map<String, String> disMap = new LinkedHashMap<>();
|
|
|
- RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
|
|
|
- if (RespDTOUtil.respIsOK(disRespDTO)) {
|
|
|
- disMap = disRespDTO.data;
|
|
|
- List<String> disNameList = Lists.newLinkedList();
|
|
|
- if (type.equals(1)) {
|
|
|
- //外部名称转内部名称
|
|
|
- disNameList = diseaseIcdVO.getDiseaseNameList();
|
|
|
- } else if (type.equals(2)) {
|
|
|
- //内部名称转外部名称
|
|
|
- disNameList = diseaseIcdVO.getConceptDisNameList();
|
|
|
+ if (type.equals(FeatureTypeEnum.Feature_Type_Lis.getKey())) {
|
|
|
+ Map<String, Map<String, List<String>>> map = getLisConfigByMealNameAndHosCode(strList, hosCode);
|
|
|
+ if (map != null) {
|
|
|
+ for (String lis : strList) {
|
|
|
+ Map<String, List<String>> itemMap = map.get(lis);
|
|
|
+ if (itemMap != null && itemMap.get("") != null) {
|
|
|
+ retStr += String.join(",", itemMap.get("")) + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- for (String diseaseName : disNameList) {
|
|
|
- if (StringUtil.isNotBlank(disMap.get(diseaseName))) {
|
|
|
- convertDiag += disMap.get(diseaseName) + ",";
|
|
|
+ } else if (type.equals(FeatureTypeEnum.Feature_Type_Pacs.getKey())) {
|
|
|
+ PacsConfigVO pacsConfigVO = new PacsConfigVO();
|
|
|
+ pacsConfigVO.setHosCode(hosCode);
|
|
|
+ pacsConfigVO.setMealNameList(strList);
|
|
|
+ RespDTO<Map<String, List<String>>> pacsRespDTO = tranServiceClient.getPacsConfig(pacsConfigVO);
|
|
|
+ if (RespDTOUtil.respIsOK(pacsRespDTO)) {
|
|
|
+ Map<String, List<String>> pacsMap = pacsRespDTO.data;
|
|
|
+ for (Map.Entry<String, List<String>> entry : pacsMap.entrySet()) {
|
|
|
+ if (ListUtil.isNotEmpty(entry.getValue())) {
|
|
|
+ retStr += String.join(",", entry.getValue()) + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (type.equals(FeatureTypeEnum.Feature_Type_Disease.getKey())) {
|
|
|
+ DiseaseIcdVO diseaseIcdVO = new DiseaseIcdVO();
|
|
|
+ diseaseIcdVO.setHosCode(hosCode);
|
|
|
+ diseaseIcdVO.setDiseaseNameList(strList);
|
|
|
+ Map<String, String> disMap = new LinkedHashMap<>();
|
|
|
+ RespDTO<Map<String, String>> disRespDTO = tranServiceClient.getDiseaseIcdMap(diseaseIcdVO);
|
|
|
+ if (RespDTOUtil.respIsOK(disRespDTO)) {
|
|
|
+ disMap = disRespDTO.data;
|
|
|
+ for (String diseaseName : strList) {
|
|
|
+ if (StringUtil.isNotBlank(disMap.get(diseaseName))) {
|
|
|
+ retStr += disMap.get(diseaseName) + ",";
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (convertDiag.endsWith(",")) {
|
|
|
- convertDiag = convertDiag.substring(0, convertDiag.length() - 1);
|
|
|
+ if (retStr.endsWith(",")) {
|
|
|
+ retStr = retStr.substring(0, retStr.length() - 1);
|
|
|
}
|
|
|
- return convertDiag;
|
|
|
+ return retStr;
|
|
|
}
|
|
|
-}
|
|
|
+}
|