|
@@ -3,19 +3,41 @@ package com.diagbot.facade;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.diagbot.client.ChiefPresentSimilarityServiceClient;
|
|
|
import com.diagbot.client.StandConvertServiceClient;
|
|
|
-import com.diagbot.dto.*;
|
|
|
+import com.diagbot.dto.BillNeoDTO;
|
|
|
+import com.diagbot.dto.CriticalNeoDTO;
|
|
|
+import com.diagbot.dto.HighRiskNeoDTO;
|
|
|
+import com.diagbot.dto.NeoPushDTO;
|
|
|
+import com.diagbot.dto.StandConvertCrfBatchDTO;
|
|
|
+import com.diagbot.dto.StandConvertCrfDTO;
|
|
|
import com.diagbot.entity.node.ICDDisease;
|
|
|
import com.diagbot.entity.node.Medicine_Code;
|
|
|
import com.diagbot.entity.node.OralMedicine;
|
|
|
-import com.diagbot.entity.node.YiBaoDisease;
|
|
|
import com.diagbot.enums.StandConvertEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
-import com.diagbot.repository.*;
|
|
|
+import com.diagbot.repository.DiseaseRepository;
|
|
|
+import com.diagbot.repository.ICDDiseaseNode;
|
|
|
+import com.diagbot.repository.ICDDiseaseRepository;
|
|
|
+import com.diagbot.repository.LisNode;
|
|
|
+import com.diagbot.repository.LisPackNode;
|
|
|
+import com.diagbot.repository.LisPackRepository;
|
|
|
+import com.diagbot.repository.LisRepository;
|
|
|
+import com.diagbot.repository.MedicineCodeRepository;
|
|
|
+import com.diagbot.repository.MedicineNode;
|
|
|
+import com.diagbot.repository.MedicineRepository;
|
|
|
+import com.diagbot.repository.OperationNode;
|
|
|
+import com.diagbot.repository.OperationRepository;
|
|
|
+import com.diagbot.repository.PACSNode;
|
|
|
+import com.diagbot.repository.PacsRepository;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import com.diagbot.util.RedisUtil;
|
|
|
import com.diagbot.util.StringUtil;
|
|
|
-import com.diagbot.vo.*;
|
|
|
+import com.diagbot.vo.BillNeoVO;
|
|
|
+import com.diagbot.vo.CriticalNeoVO;
|
|
|
+import com.diagbot.vo.HighRiskNeoVO;
|
|
|
+import com.diagbot.vo.NeoPushVO;
|
|
|
+import com.diagbot.vo.StandConvert;
|
|
|
+import com.diagbot.vo.StandConvertCrfVO;
|
|
|
import com.diagbot.vo.neoPushEntity.Diag;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
@@ -23,7 +45,13 @@ import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @Description: 图谱facade
|
|
@@ -76,14 +104,14 @@ public class NeoFacade {
|
|
|
|
|
|
while (iterator.hasNext()) {
|
|
|
current = iterator.next();
|
|
|
- if (current.getMedicine_related_chem().size()>0) {
|
|
|
+ if (current.getMedicine_related_chem().size() > 0) {
|
|
|
sets = new ArrayList<>(current.getMedicine_related_chem());
|
|
|
med_code = current.getName();
|
|
|
med_type = sets.get(0).getName();
|
|
|
- if (res.get(med_type)==null) {
|
|
|
+ if (res.get(med_type) == null) {
|
|
|
res.put(med_type, new ArrayList<>());
|
|
|
}
|
|
|
- if (res.get(med_type).indexOf(med_code)==-1) {
|
|
|
+ if (res.get(med_type).indexOf(med_code) == -1) {
|
|
|
res.get(med_type).add(med_code);
|
|
|
}
|
|
|
}
|
|
@@ -97,6 +125,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 图谱反推的数据
|
|
|
+ *
|
|
|
* @param pushVO
|
|
|
* @return
|
|
|
*/
|
|
@@ -118,6 +147,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 图谱正推的数据
|
|
|
+ *
|
|
|
* @param pushVO
|
|
|
* @return
|
|
|
*/
|
|
@@ -132,6 +162,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 处理开单合理性图谱数据
|
|
|
+ *
|
|
|
* @param billNeoVO
|
|
|
* @return
|
|
|
*/
|
|
@@ -148,9 +179,9 @@ public class NeoFacade {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 处理高危项目图谱数据
|
|
|
+ *
|
|
|
* @param highRiskNeoVO
|
|
|
* @return
|
|
|
*/
|
|
@@ -175,7 +206,6 @@ public class NeoFacade {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 处理处方开单合理性
|
|
|
*/
|
|
@@ -226,6 +256,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 推送疾病信息
|
|
|
+ *
|
|
|
* @param neoPushVO
|
|
|
* @return
|
|
|
*/
|
|
@@ -245,7 +276,7 @@ public class NeoFacade {
|
|
|
if (icdDisease != null) {
|
|
|
pushDTO = icdDiseaseNode.ICDDiseasetoPushDTO(icdDisease, neoPushVO);
|
|
|
|
|
|
- if (null!=pushDTO) {
|
|
|
+ if (null != pushDTO) {
|
|
|
neoPushDTOs.add(pushDTO);
|
|
|
}
|
|
|
}
|
|
@@ -268,6 +299,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 处理高危药品数据
|
|
|
+ *
|
|
|
* @param drugs
|
|
|
* @return
|
|
|
*/
|
|
@@ -281,6 +313,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 处理高危手术和操作数据
|
|
|
+ *
|
|
|
* @param operations
|
|
|
* @return
|
|
|
*/
|
|
@@ -293,6 +326,7 @@ public class NeoFacade {
|
|
|
|
|
|
/**
|
|
|
* 提取方法
|
|
|
+ *
|
|
|
* @param jsonArray
|
|
|
* @param originName
|
|
|
* @param map
|
|
@@ -316,7 +350,7 @@ public class NeoFacade {
|
|
|
* 类型,疾病: disease,症状: symptom,手术和操作:operation,药品: drug,实验室检查:lis,辅助检查:pacs, 辅助检查:vital"
|
|
|
*
|
|
|
* @param standConvert
|
|
|
- * @return Map<String, Map<String, String>> -->Map<类型, Map<原始词, 标准词>>
|
|
|
+ * @return Map<String , Map < String , String>> -->Map<类型, Map<原始词, 标准词>>
|
|
|
*/
|
|
|
public Map<String, Map<String, String>> standConvertCrf(StandConvert standConvert) {
|
|
|
Map<String, Map<String, String>> map = new LinkedHashMap<>();
|
|
@@ -392,7 +426,7 @@ public class NeoFacade {
|
|
|
* @param map
|
|
|
*/
|
|
|
public void getConvertMap(Map<String, Map<String, StandConvertCrfDTO>> crfDTO, String type, List<String> convertList,
|
|
|
- List<String> orginList, Map<String, Map<String, String>> map) {
|
|
|
+ List<String> orginList, Map<String, Map<String, String>> map) {
|
|
|
Map<String, StandConvertCrfDTO> crfMap = crfDTO.get(type);
|
|
|
Map<String, String> typeMap = new LinkedHashMap<>();
|
|
|
if (ListUtil.isEmpty(convertList) || crfMap == null) {
|