123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- package com.diagbot.facade;
- import com.diagbot.client.AiptServiceClient;
- import com.diagbot.client.bean.ScaleContent;
- import com.diagbot.client.bean.SearchData;
- import com.diagbot.client.bean.Treat;
- import com.diagbot.dto.ConceptPushDTO;
- import com.diagbot.dto.PushDTO;
- import com.diagbot.dto.RespDTO;
- import com.diagbot.enums.FeatureTypeEnum;
- import com.diagbot.util.RespDTOUtil;
- import com.diagbot.vo.PushVO;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.Arrays;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- /**
- * @Description:
- * @Author:zhaops
- * @time: 2019/5/13 17:47
- */
- @Component
- public class PushFacade {
- @Autowired
- AiptServiceClient aiptServiceClient;
- @Autowired
- AssembleFacade assembleFacade;
- /**
- * 推理接口
- *
- * @param pushVO
- * @return
- */
- public PushDTO push(PushVO pushVO) {
- PushDTO pushDTO = new PushDTO();
- SearchData searchData = assembleFacade.assembleData(pushVO);
- RespDTO<PushDTO> respDTO = aiptServiceClient.pushInner(searchData);
- RespDTOUtil.respNGDeal(respDTO, "中间层没有返回结果");
- PushDTO data = respDTO.data;
- String featureType = searchData.getFeatureType();
- String[] featureTypes = featureType.split(",|,");
- Set<String> featureTypeSet = new HashSet(Arrays.asList(featureTypes));
- //症状
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Symptom.getKey()))) {
- List<ConceptPushDTO> symptom = data.getSymptom();
- pushDTO.setSymptom(symptom);
- }
- //其他史
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Other.getKey()))) {
- }
- //查体
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalResult.getKey())) ||
- featureTypeSet.contains(String.valueOf(FeatureTypeEnum.VitalIndex.getKey()))) {
- List<ConceptPushDTO> vitals = data.getVital();
- pushDTO.setVital(vitals);
- }
- //化验
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Lis.getKey()))) {
- List<ConceptPushDTO> labs = data.getLab();
- pushDTO.setLab(labs);
- }
- //辅检
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Pacs.getKey()))) {
- pushDTO.setPacs(data.getPacs());
- }
- //诊断
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.Disease.getKey()))) {
- pushDTO.setDis(data.getDis());
- }
- //推送指标
- if (featureTypeSet.contains(String.valueOf(FeatureTypeEnum.MedicalIndication.getKey()))) {
- pushDTO.setMedicalIndications(data.getMedicalIndications());
- }
- return pushDTO;
- }
- /**
- * 治疗方案推送-不包含慢病内容
- *
- * @param pushVO
- * @return
- */
- public Treat pushTreatment(PushVO pushVO) {
- SearchData searchData = assembleFacade.assembleData(pushVO);
- RespDTO<Treat> res = aiptServiceClient.getTreatment(searchData);
- RespDTOUtil.respNGDeal(res, "中间层没有返回治疗方案");
- return res.data;
- }
- /**
- * 治疗方案推送-不包含慢病内容
- *
- * @param pushVO
- * @return
- */
- public List<ScaleContent> pushScale(PushVO pushVO) {
- SearchData searchData = assembleFacade.assembleData(pushVO);
- RespDTO<List<ScaleContent>> res = aiptServiceClient.getScale(searchData);
- RespDTOUtil.respNGDeal(res, "中间层没有返回量表");
- List<ScaleContent> data = res.data;
- return data;
- }
- }
|